#php #symfony #selenium #webdriver #codeception
#php #symfony #селен #webdriver #codeception
Вопрос:
У меня есть проект Symfony2, но я не могу правильно настроить WebDriver. Я установил facebook webdriver и codeception с помощью composer:
facebook / webdriver: версии: * 1.1.3
codeception / codeception: версии: * 2.2.5
Я следовал этим инструкциям (и когда автозагрузка не удалась, многие другие источники безуспешно): http://codeception.com/11-20-2013/webdriver-tests-with-codeception.html
кодовое восприятие.yml в корне проекта:
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
support: tests/_support
envs: tests/_envs
settings:
bootstrap: _bootstrap.php
colors: true
memory_limit: 1024M
extensions:
enabled:
- CodeceptionExtensionRunFailed
- WebDriver
config:
WebDriver:
url: 'http://localhost/'
browser: firefox
port: 4444
modules:
config:
Db:
dsn: ''
user: ''
password: ''
dump: tests/_data/dump.sql
У меня сгенерированы приемочные тесты, и когда я запускаю codeception, возникает следующая ошибка:
[CodeceptionExceptionConfigurationException]
Class `WebDriver` is not defined. Autoload it or include into '_bootstrap.php' file of 'tests' directory
Я пробовал добавлять это в tests/_bootstrap.php:
require_once __DIR__.'/../vendor/codeception/codeception/src/Codeception/Module/WebDriver.php';
Приведенный выше путь правильный, php-файл найден, но проблема сохраняется. Как именно должна выполняться автозагрузка или включение начальной загрузки?
РЕДАКТИРОВАТЬ: я внес включение и настройку WebDriver в tests / acceptance.suite.yml вместо корневой папки codeception.yml, и преодолел проблему.
Остается неясным, почему это происходит?
Комментарии:
1. Вы запускали
vendor/bin/codecept build
команду после настройки Webdriver вcodeception.yml
?
Ответ №1:
WebDriver — это не расширение, а модуль.
Вы должны включить его в modules
разделе acceptance.suite.yml
файла.
modules:
enabled:
- WebDriver
- HelperAcceptance
https://github.com/Codeception/Codeception/blob/2.2/tests/web.suite.yml