2017-01-09 4 views
1

В настоящее время у нас есть большой приемный пакет, построенный с использованием Codeception 2.0.16. Мы хотели бы перейти на Codeception 2.2.5. Однако после установки Codeception 2.2.5 (через phar) мы не можем запускать наши тестовые пакеты вообще.Пространства имен кода кода

Ошибка мы получаем, (дополнительные детали в нижней части):

[Codeception \ Exception \ Исключение настройки] Модуль WebHelper не может быть найден и загружен

Очевидно, что новая версия имеет загрузку изменения, которые влияют на наш пакет.

Я искал инструкции по миграции, чтобы помочь нам в этом обновлении и не вижу никаких изменений.

Addtional Подробности

  • Codeception версия: 2,016 ==> 2.2.5
  • PHP Версия: 5.6.9
  • Операционная система: CentOS
  • Тип установки: Фар

Codeception PROJECT configuration

Примечание: После тестирования и изменения нескольких частей кода я заметил, что основная проблема связана с пространствами имен. Как вы можете выделить ниже, мы используем пространство имен, называемое «SM», и некоторые из них, как проблемы, вызывающие проблемы.

codeception.yml конфигурации

namespace: SM 
paths: 
    tests: tests 
    log: tests/_log 
    data: tests/_data 
    helpers: tests/_helpers 
settings: 
    bootstrap: _bootstrap.php 
    suite_class: \PHPUnit_Framework_TestSuite 
    colors: true 
memory_limit: 1024M 
    log: true 
    strict_xml: true 
modules: 
    config: 
     Db: 
      dsn: 'mysql:host=xxxxxxxxxxxx;dbname=<DB_NAME>' 
      user: 'USER' 
      password: '********' 
      dump: tests/_data/dump.sql 
      populate: false 
      cleanup : false 

Приемка Люкс

class_name: WebGuy 
modules: 
    enabled: 
     - WebDriver 
     - WebHelper 
     - SistemWSClient 
     - TestingSupportWSClient 
     - Db 
     - TempFileManager 
     - Asserts 

    config: 
     WebDriver: 
      url: 'http://xxxxxxxxxxxxxxxxxx/codeception' 
      browser : firefox 
      host: xxxxxxxxxxxxx 
      port: 4444 
      wait: 0 
      restart: true 
      capabilities: 
       unexpectedAlertBehaviour: 'accept' 

     SistemWSClient: 
      url: xxxxxxx 
     TestingSupportWSClient: 
      url: 'http://x/codeception/rest.php' 
     Db: 
      dsn: 'mysql:host=xx;port=3306;dbname=x' 
      user: 'xxxxxxx' 
      password: 'xxxxxxx' 
      dump: 'some/dump/file' 
      populate: false 
      cleanup: false 

Примечания:

а) я добавил «пространство имен S M;» в верхней части тестов/_helpers/WebHelper.PHP (она не работает)

б) Я также попытался это: (она не работает)

modules: 
    enabled: 
     - \WebHelper (or \SM\WebHelper or any other combination) 

с) я также установил очищенную версию codeception с сайта codeception в:

  • Загруженные codeception (Wget http://codeception.com/codecept.phar)
  • установил его (codecept самозагрузки)
  • Создан простой тест только для целей тестирования (кодцепция generate: cept accept Welcome)

Добавлено «пространство имен SM»; и Помощники соответственно и я получаю ту же ошибку, в этом случае:

Helper \ Акцепт не может быть найден и загружен

d) Я также попытался использовать «надстройку имен» codeception в команда без везения

Любая идея будет оценена по достоинству.

Спасибо,

ответ

0

Ошибки в моем случае упомянутой другой файл, однако причину и решение может быть таким же.

После нескольких часов отладки и поиска в Интернете я нашел ответ на мою проблему, по крайней мере: http://phptest.club/t/class-helper-acceptance-does-not-exist/808

В моем случае, .gitignore моих главных-проектов имел в _* линию в нем. Из-за этого каталоги кода не были зафиксированы, и в частности директива _support, содержащая запрошенный файл.

Извлечение линии _* из моего .gitignore и фиксация и вытягивание файлов, а затем устранение проблемы.

Надеюсь, это поможет.

+0

Этот ответ не имеет никакого отношения к вопросу! –

0

В Codeception должны быть созданы «помощники». Попробуйте выполнить команду:

codecept build 

Затем запустите его снова.