функциональные тесты с behat, mink и symfony2

Пытаюсь протестировать связки Behat и Mink, но у меня проблема

  • Я хорошо установил связки

  • У меня запущено: php app/console test-e=Behat - init@AcmeDemoBundle, папка Features создана

  • Я написал сценарий в essai.feature

  • Я запустил: php app/console test-e @ Behat AcmeDemoBundle, получил такой результат

Функция: Тест      Чтобы протестировать      Как разработчику      Мне нужно иметь возможность отправить контактную форму

Сценарий: перейдите на страницу приветствия # src \ Acme \ DemoBundle \ Features \ > essai.feature: 6      Учитывая, что я нахожусь в "/crud/Article"

Сценарий 1 (1 не определен) 1 шаг (1 не определен) 0 м 0,243 с

Вы можете реализовать определения шагов для неопределенных шагов с тезисом фрагментов:

/ **       * @ Given / ^ I am on "([^"] *) "$ /       * /      public function iAmOn ($ arguments1)      {           throw new PendingException ();      }

  • Когда я пытался внедрить определения, я запускал php app/console test-e @ Behat AcmeDemoBundle -dl

Но я вообще ничего не получаю! ничего не выполняется и файл FeatureContext не изменяется

Пожалуйста, помогите мне найти решение


person symfounya    schedule 25.06.2012    source источник
comment
Не могли бы вы исправить форматирование кода, пожалуйста? Кроме того, что значит, что вы ничего не получаете? Что вы ожидали получить?   -  person Jakub Zalas    schedule 25.06.2012
comment
спасибо и извините за формат кода, я исправил проблему   -  person symfounya    schedule 27.06.2012
comment
Вы все еще можете исправить свой вопрос и поделиться ответом с будущими поколениями...   -  person Jakub Zalas    schedule 27.06.2012
comment
на самом деле я просто копирую функцию метода iAmOn сгенерированную в консоли под файл FeatureContext.php большое спасибо   -  person symfounya    schedule 27.06.2012


Ответы (2)


Похоже, вы не сказали Бехату, где искать ваш основной файл контекста. Вам нужно либо явно загрузить FeatureContext.php в файл конфигурации вашего поведения:

# config/behat.yml
default:
autoload: [ %paths.base%/../features/bootstrap ]
suites:
  default:
      paths: [ %paths.base%/../features ]
      filters:
      contexts:
          - FeatureContext

Или поместите FeatureContext.php именно там, где Behat ищет его по умолчанию. Из раздела "требования класса контекста" документов Behat:

Класс контекста должен быть доступен для обнаружения и загрузки Behat. Это означает, что вы должны как-то сообщить Бехату о вашем файле класса. Behat поставляется с автозагрузчиком PSR-0 из коробки, а каталог автозагрузки по умолчанию — functions/bootstrap. Вот почему FeatureContext по умолчанию так легко загружается Behat. Вы можете поместить свои собственные классы в functions/bootstrap, следуя соглашению PSR-0, или вы даже можете определить свою собственную папку автозагрузки через behat.yml.

person Madness Method    schedule 21.07.2015

Если в определении шага есть какие-либо ошибки, это может привести к одному из этих сценариев «ничего не происходит». Лучше всего скопировать новое определение шага из вывода консоли и вставить его в свой FeatureContext, прежде чем вы начнете его реализовывать.

person branchgabriel    schedule 08.01.2013