Codeception-приемочные тесты работают, но функциональный тест не

я запускаю последнюю версию Codeception на платформе WAMP - мое принятие очень простое, однако отлично работает (см. ниже):

$I = new WebGuy($scenario);
$I->wantTo('Log in to the website');
$I->amOnPage('/auth/login');
$I->fillField('identity','admin@admin.com');
$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','admin@admin.com');
$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.......

My Acceptance suite имеет модули "PhpBrowser" и "WebHelper", функциональный пакет имеет "файловую систему" и "TestHelper" (в рамках принятия.комплект.в формате YML и функциональные.комплект.файла в формате YML)

очевидно, что функция amOnPage() является проблемой - однако я убежден, что amOnPage () должен работать в принятии и функциональном тесте? Или я ошибаюсь-также-может кто-нибудь объяснить, что означают числа e.g '

UPDATE: я попытался добавить модуль "WebHelper" в функционал.комплект.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]

2 ответов


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

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


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