2011-06-22 19 views
6

Stworzyłem własne standardy reguł codesniffer. Działają dobrze. Teraz chcę przetestować zasady codesniffer za pomocą PHP UnitTest. PhpCodesniffer ma już swoje ramy dla testu PHPUnit.Jak utworzyć moduł PHP-UnitTest dla standardów PHP_Codesniffer? `

Więc używając że rozszerzyły swoją klasę testową AbstractSniffUnitTest i bloku w miejscu Standards/TestRules/Tests/Function/FunctionUnitTest.php i scenariusz, w którym ma być badane przechowywane w Standards/TestRules/Tests/Function/FunctionUnitTest.inc.

Ale gdy mam zamiar uruchomić skrypt za pomocą polecenia phpunit PEAR\PHP\tests\AllTests.php, daje następujący błąd.

PHPUnit 3.5.14 by Sebastian Bergmann. 

......................................F 

Time: 6 seconds, Memory: 10.00Mb 

There was 1 failure: 

1) TestRules_Tests_Function_FunctionUnitTest::getErrorList 
An unexpected exception has been caught: Source file C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc does not exist 

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php:138 
C:\Program Files\PHP\PEAR\PHP\tests\TestSuite.php:48 

FAILURES! 
Tests: 39, Assertions: 146, Failures: 1. 

Warning: Deprecated PHPUnit features are being used 2 times! 
Use --verbose for more information. 

Daje plik błędów FunctionUnitTest.inc nie znaleziono w podanej lokalizacji. Podałem pełne uprawnienia do folderu, ale również zweryfikuję ścieżkę i lokalizację pliku, ale daje to ten sam błąd. Przetestowałem to również na maszynie z Linuksem, ale daje to ten sam błąd.

Czy to jest problem z moim kodem, czy z problemem unicest codesniffer?

+0

Spróbuj użyć przełącznika '--verbose' i dodaj rozszerzone wyjście. – hakre

Odpowiedz

1

Widzę przestrzeń w pobliżu ii nc - upewnij się, że to pomyłka i popraw ją, powinna działać. Poza tym nie widzę żadnego problemu.

Zmiana:

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Normy/TestRules/Testy/Funkcja/FunctionUnitTest.i nc

Aby

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc

+0

Sformatowałem pytanie do plakatu, aw "inc" nie było miejsca. Koniec końców, przeglądarka zamienia się w przestrzeń. Podejrzewam, że było to spowodowane przez wybranie tekstu w konsoli. –

+0

@ David Mam nadzieję, że tak, ale zastanawiam się, co może spowodować ten problem, ponieważ oba pliki znajdują się w tej samej lokalizacji & TestRules/Tests/Function/FunctionUnitTest.php' jest przetwarzane, jeśli tak jest, wtedy powinien pobrać plik 'TestRules/Tests/Function/FunctionUnitTest.inc'. –

+0

Dziękuję wszystkim za komentarze. Rzeczywista lokalizacja pliku jest C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Normy/TestRules/Testy/Funkcja/FunctionUnitTest.inc Ja też zastanawiałem się, dlaczego ten problem występuje w folderze ma pełne uprawnienia do odczytu/zapisu . – Gaurav

1

Czy Twoje pliki znajdują się w katalogu najwyższego poziomu tests lub CodeSniffer? Zauważ, że abstrakcyjny przypadek testowy jesteś rozszerzenie jest w tests

C:\Program Files\PHP\PEAR\PHP\tests\Standards\AbstractSniffUnitTest.php 

ale próbuje dołączyć plik z CodeSniffer:

C:/Program Files/PHP/PEAR/PHP/CodeSniffer/Standards/TestRules/Tests/Function/FunctionUnitTest.inc 

Spróbuj przenieść swoje dwa pliki do innego katalogu.

+0

Struktura katalogów jest następująca -Codesniffer --Standard --- TestRules ---- Powąchaj/Funkcja/FunctionSniff.php ---- Testy/Funkcja/FunctionUnitTest.php /-FunctionUnitTest.inc - testy - Standardy /AbstarctSniffUnitTest.php /AllSniffs.php Czy istnieje jakiś problem ze strukturą katalogów? Podążyłem za tą samą konwencją, co PHP-Codesniffer UnitTest. Dowolny wskaźnik? – Gaurav

+0

Jeśli postępowałeś zgodnie ze wzorcem określonym przez własne testy CodeSniffer, oczekiwałbym, że zadziała. Zacznę od otwarcia klasy, która próbuje dołączyć twój plik i zobaczyć, gdzie spodziewa się pliku. Czas zakasać rękawy i zabrudzić sobie ręce. :) –

0

Wygląda na to, że ma problem z ścieżką w oknach. Testowałem przypadki testowe na Linuksie, działa dobrze. Kiedy sprawdziłem rzeczywisty kod, wygląda na to, że istnieje mapowanie pliku z pliku testowego do pliku sniff. Ale w oknie, po zmapowaniu pliku, ścieżka pliku zawiera wymieszanie z forwardami do sluchów w odwrotnej kolejności. Ale kody nie pozwolą na to. Z tego powodu powraca, że ​​"plik nie znaleziono błąd". Przypadki testowe działają dobrze w systemie Linux.