2013-01-13 17 views
17

Mam zainstalowany PhpStorm 5 z PHPUnit i jestem ciekawy, czy PhpStorm może mieć jakąś funkcjonalność, która automatycznie uruchomi test jednostki podczas zapisywania pliku. Jak strażnik i strażnik. Próbowałem przeszukać nasze ulubione dokumenty www i PhpStorm, ale nie znalazłem na to rozwiązania.Wykonaj test jednostki podczas zapisywania pliku w PhpStorm

+0

PhpStorm nie ma takiej możliwości (do wykonania czegoś, gdy plik zostanie zapisany).Możesz ** spróbować ** nagrać ** makro ** na 1) zapisać plik i 2) uruchomić test urządzenia .. a następnie przypisać mu skrót i użyć go zamiast zapisywania (oczywiście, jeśli plik zostanie zapisany automatycznie, to makro nie angażuje się). Poza tym - poszukaj jakiegoś zewnętrznego obserwatora plików, który może wykonać określone akcje na modyfikacji plików. ** P.S. ** To jest bilet, który prosi o podobną funkcjonalność: http://youtrack.jetbrains.com/issue/IDEA-85791 – LazyOne

+0

Dzięki za bardzo przejrzystą odpowiedź @LazyOne. Bardzo doceniane! –

Odpowiedz

24

Począwszy od wersji 6, PHPStorm ma "Watchers plików"

  • Otworzyć swoje preferencje projektu.
  • Wybierz opcję Przeglądarki plików z lewej listy opcji.
  • Kliknij symbol + u dołu pustego panelu po prawej stronie.
  • Wybierz <custom>

Będziesz musiał skonfigurować wiersz polecenia dla PHPUnit, to przyzwyczajenie być zintegrowane badania, ale można mieć błędy wyjścia do konsoli (co jest dobre to dobry początek!)

Dostępne są różne opcje makr, więc możesz dołączyć (na przykład) $FileNameWithoutExtension$Test.php do argumentów przekazanych do wiersza poleceń.

Osobiście musiałem założyć dwóch obserwatorów. Pierwsza wykryta modyfikacja plików projektu, a druga wykryła zmiany w plikach testowych (druga nie dodała Test.php do nazwy pliku) Stworzyłem również nowy zakres projektu, aby wykluczyć katalogi testów od pierwszego obserwatora.

Możesz również wyłączyć natychmiastową synchronizację, ponieważ powoduje to uruchomienie PHPUnit, gdy PHPSTorm automatycznie zapisuje pliki.

Moje inne ustawienia są takie jak:

  • Typ pliku: PHP files (PHP)
  • Zakres: Project excluding tests
  • programowe: /path/to/php
  • Argumenty: /path/to/phpunit --configuration /path/to/phpunit.xml.dist /path/to/tests/$FileNameWithoutExtension$Test.php
  • katalog roboczy: $FileDir$
  • ścieżki wyjścia : $FileDir$

Brak ustawionych filtrów wyjściowych, sprawdzanie błędów składniowych i wyświetlanie błędów konsoli.

+0

Przepraszamy za spóźnioną odpowiedź, ale to świetna informacja! Mam już ulepszone :) Wielkie dzięki za powrót do tego pytania Leigh –

+0

Świetna odpowiedź! Po prostu wykonałem powyższe kroki i sprawiłem, że działał. Ustawienie zmieniło się nieco dla PHPStorm 7, więc tutaj jest obraz ze szczegółami, których użyłem do jego działania: ** [link do GDocs] (https://docs.google.com/drawings/d/1mk2abn6k4cxa3HhqviVcshiwww3EvFkX_VhBtjXN3FE/edit) ** . Stworzyłem również swój własny zakres w ustawieniach PHPStorm, w których umieściłem pliki, które chcę "obejrzeć". –

+1

Możesz użyć opcji '--filter' w phpunit, aby uprościć konfigurację i mieć tylko 1 watcher. Po prostu zmień ustawienie Arguments na '--filter $ FileNameWithoutExtension $' i wykonasz test niezależnie od tego, czy edytujesz plik czy testy jednostkowe. –

1

Można też rzucić okiem na TDDRunner

To jest narzędzie, które wykona konsola PHPUnit autmaticly o zmianach plików. Możesz także skonfigurować PHPUnit, wymuszając tylko jeden plik i cokolwiek.

/usr/bin/tddrunner --group=test 

Jest jeszcze jeden szczegół, który można uzyskać pod numerem German article.

Powiązane problemy