Автозагрузка Codeception: ‘WebDriver’ не определен

#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