8

Я бегу последнюю версию Codeception на платформе WAMP - Мое признание очень проста, однако отлично работает (см ниже):Codeception - Приемочные испытания работы, но функциональный тест не

$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'); 

В двух словах - он проверяет, что страница «auth/login» заполняет 2 поля формы и нажимает кнопку входа в систему. Это работает без проблем.

Вот мой тождественны функциональный тест:

$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'); 

При запуске из командной строки я получаю следующую ошибку (не полную ошибку, но достаточно, чтобы понять проблему):

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

Мой приемный пакет имеет «PhpBrowser» & Модули «WebHelper» включены, функциональный пакет имеет «FileSystem» & «TestHelper» включен (в файле accept.suite.yml & functions.suite.yml)

Очевидно, что функция amOnPage() является проблемой - однако я убежден, что amOnPage() должен работать при принятии и функциональном тестировании? Или я ошибаюсь - также может кто-то объяснить, что означают цифры, например: «< - [35; 1m», которые появляются

ОБНОВЛЕНИЕ: Я попытался добавить модуль «WebHelper» к функции functional.suite.yml, но я не см. файл amOnPage(), который автоматически генерируется в файле TestGuy.php - любые идеи?

Мои файлы конфигурации ниже:

WebGuy

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

TestGuy

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

ответ

9

Ну, это так, из-за TestGuy не имеют этих методов. Все эти методы находятся в модулях PhpBrowser, Selenium2 или других, которые наследуются от реализации MRC реализации Codeception. Поэтому вам нужно добавить PhpBrowser в свой функциональный пакет в разделе модулей, а затем запустить команду codecept build.

Также обратите внимание, что лучше использовать модуль Selenium2 для приемочных испытаний и PhpBrowser для функциональных тестов. Основная идея заключается в том, что тесты Accept (Selenium2) должны охватывать те части вашего приложения, которые не могут быть покрыты функциональными (PhpBrowser) тестами, например, некоторые js-взаимодействия.

+0

Спасибо @Elkan Я добавил «PhpBrowser» в мой файл functional.suite.yml и выполнить команду «codecept сборки» и получить «модуль PhpBrower не настроен! Модуль PhpBrowser не настроен. Пожалуйста, проверьте его обязательные поля. Любые идеи о том, что я здесь делаю? – Zabs

+0

Примечание .. Я использую CodeIgniter .. и я обнаружил, что нет модуля для это еще в данный момент :( – Zabs

+0

да, теперь нет модуля для CI, но используйте для этого PhpBrowser для функциональных тестов, разница в скорости не так много, когда вы используйте PhpBrowser (на основе curl) и собственный модуль framework (на основе набора символов Symfony).Вернемся к ошибке, вам нужно настроить PhpBrowser, см. Документы модуля на сайте кодообразования :) – Elkan

-1

О '<-[35;1m' сценарий запуска codecept run --no-colors удалить '<-[35;1m' из консольного вывода

Смежные вопросы