8

Używam najnowszej wersji Codeception na platformie WAMP - My akceptacja jest bardzo proste, jednak działa poprawnie (patrz poniżej):Codeception - Testy akceptacyjne działać, ale testy funkcjonalne nie

$I = new WebGuy($scenario); 
$I->wantTo('Log in to the website'); 
$I->amOnPage('/auth/login'); 
$I->fillField('identity','[email protected]'); 
$I->fillField('password','password'); 
$I->click('Login'); 

W skrócie - sprawdza, czy strona jest "auth/login" wypełnia 2 pola formularza i klika przycisk logowania. Działa to bez żadnych problemów.

Oto moja identyczne testy funkcjonalne:

$I = new TestGuy($scenario); 
$I->wantTo('perform actions and see result'); 
$I->amOnPage('/auth/login'); 
$I->fillField('identity','[email protected]'); 
$I->fillField('password','password'); 
$I->click('Login'); 

Kiedy uruchomić z wiersza poleceń pojawia się następujący błąd (nie pełne błędów, ale na tyle, by zrozumieć problem):

1) Couldn't <-[35;1mperform actions and see result<- 
[0m in <-[37;1LoginCept.php<-[0m <-41;37mRuntimeException: 
Call to undefined method TestGuy::amOnPage<-[0m....... 

Mój pakiet akceptacji ma "PhpBrowser" & Włączono moduły "WebHelper", pakiet funkcjonalny ma włączoną opcję "FileSystem" & "TestHelper" (w ramach plików accept.suite.yml & functional.suite.yml)

Oczywiście problemem jest funkcja amOnPage() - jednak jestem przekonany, że amOnPage() powinien działać w teście akceptacyjnym i funkcjonalnym? Albo się mylę - również - może ktoś wyjaśnić, co oznaczają liczby np „< - [35; 1m”, które pojawiają się

UPDATE: Próbowałem dodanie modułu „WebHelper” do functional.suite.yml ale nie wiem zobacz czy amOnPage() jest generowane automatycznie w pliku TestGuy.php - jakieś pomysły?

Moje pliki konfiguracyjne są poniżej:

WebGuy

class_name: WebGuy 
modules: 
enabled: 
    - PhpBrowser 
    - WebHelper 
config: 
    PhpBrowser: 
     url: 'http://v3.localhost/' 

TestGuy

class_name: TestGuy 
modules: 
enabled: [Filesystem, TestHelper, WebHelper] 

Odpowiedz

9

No to jest tak, ze względu TestGuy nie mają tych metod. Wszystkie te metody znajdują się w modułach PhpBrowser, Selenium2 lub innym, który dziedziczy po implementacji Codeception Mink. Musisz więc dodać PhpBrowser w swoim pakiecie funkcjonalnym w sekcji modułów, a następnie uruchomić polecenie codecept build.

Należy również pamiętać, że lepiej jest użyć modułu Selenium2 do testu akceptacji i PhpBrowser do testów funkcjonalnych. Główną ideą jest to, że testy akceptacyjne (Selenium2) muszą obejmować te części aplikacji, które nie mogą być objęte testami funkcjonalnymi (PhpBrowser), na przykład niektóre interakcje js.

+0

Dzięki @Elkan Dodałem „PhpBrowser” do mojego pliku functional.suite.yml i uruchom polecenie „codecept build” i otrzymać „moduł PhpBrower Moduł PhpBrowser nie jest skonfigurowany Proszę sprawdzić jego wymagane pola Wszelkie pomysły na temat tego, co robię z tutaj? – Zabs

+0

Uwaga .. Używam CodeIgniter .. i odkryłem, że nie ma modułu dla to jeszcze w tej chwili :( – Zabs

+0

tak, brak modułu dla CI dostępnego na razie, ale użyj PhpBrowser do testów funkcjonalnych, różnica prędkości nie jest aż tak duża, kiedy użyj PhpBrowser (na bazie curl) i rodzimego modułu (bazującego na zestawie przeglądarek symfony).Wracając do błędu, musisz skonfigurować PhpBrowser, zobacz dokumentację modułu na stronie kodekceptacji :) – Elkan

-1

O '<-[35;1m' początek skrypt codecept run --no-colors usunąć '<-[35;1m' z wyjścia konsoli

Powiązane problemy