2013-10-14 14 views
5

Próbowałem skonfigurować kodekceptację dla mojego projektu Symfony2, który ma już 4 pakiety robocze i ich testery PHPUnit. Teraz chciałem dodać Testcases kodekceptacji, szczególnie dla testów akceptacyjnych, ale kiedy "bootstrowałem" kodekcepcję, znalazłem cały wygenerowany kod w mojej głównej strukturze. Ponieważ moja aplikacja jest już zorganizowana w pakiety, chciałem zachować tę koncepcję także w przypadku testowania. Zwłaszcza, że ​​mam już moje testery PHPUnit w moich pakietach. Oficjalna procedura kodowania s2 tak naprawdę nie obejmuje tego. Więc dla mnie jakieś pytania:Konfiguracja zestawu w ramach kodekceptacji

  1. Jak skonfigurować codeception że działa w moim wiązek
  2. Jak Pobiegłem za pomocą jednego polecenia wszystkich moich dotychczasowych testami phpunit i mój testami codeception?

Odpowiedz

2

Po prostu ustawiłem to w podobny sposób.

codeception ma -c przełącznik, który zrobi co trzeba, tj .:

vendor/bin/codecept bootstrap src/Acme/ExampleBundle 

a następnie:

vendor/bin/codecept run -c src/Acme/ExampleBundle 

nie wiem o swoim 2nd pytanie. Przynajmniej w przypadku testów jednostkowych konwersja ich na testy kodekcyjne była banalna, zwłaszcza, że ​​moje testy dziedziczą z klasy abstrakcyjnej, więc zajęło tam może 10 linii zmian, głównie ustawienia sprzętu.

+0

Można również dodać następujące wiersze do korzenia 'codeception.yml' złożyć zamiast aby określić flagę '-c' za każdym razem: ' include: - src/Acme/ExampleBundle' następnie po prostu uruchom 'vendor/bin/codecept run' jak zwykle. Znajdzie on pakiet 'codeception.yml' i będzie zawierał wszystkie testy w tym samym przebiegu. – teaforchris

2

@Tom To nie zadziała, ponieważ moduł Symfony2 szuka pliku bootstrap.php.cache, który wciąż znajduje się w folderze głównym twojej aplikacji symfony2! Moim rozwiązaniem jest utworzenie łącza w pakiecie do aplikacji/folderu! niż to zadziała!

W {Twój root}/src/{your-app}/{your-bundle}:

ln -s ../../../app .