2013-10-24 3 views
4

Мне интересно, есть ли способ использовать различные классы контекста для разных функций.Behat context for feature

Я бы хотел, чтобы одна функция использовала MinkExtensions для тестирования браузеров, а другая - с использованием и HTTP-клиента, такого как тестирование Guzzle для API - оба будут иметь аналогичные шаги с другой реализацией.

+1

Очевидно, эта функция будет частью Behat 3. –

ответ

5

Это должно быть возможным в Behat 3. См http://everzet.com/tagged/Behat Характеристика: «Multi-контекстные прогонов с поддержкой на-тега, в-справочник и в-роли контекста классов В этом.„Важность роли“мантры я был всегда будет продолжаться проповедь, так как каждая роль в конечном итоге сможет иметь собственный словарь шагов ».

На данный момент в Behat 2 вы можете использовать разные профили, чтобы отделить функции. В вашем behat.yml, вы могли бы что-то вроде этого:

#running login suite using Mink 
login-suite: 
    paths: 
     features: features/login-suite 
     bootstrap: features/login-suite/bootstrap 

    extensions: 
     mink-extension.phar: 
      base_url: http://domain.org 

    formatter: 
     name: pretty, junit, html 
     parameters: 
      output_path: null, logs/login-suite/, logs/login-suite/out.html 

#running logout suite using the WebApi 
logout-suite: 

    paths: 
     features: features/logout-suite/ 
     bootstrap: features/logout-suite/bootstrap/ 

    formatter: 
     name: pretty, junit, html 
     parameters: 
      output_path: null, logs/login-suite/, logs/logout-suite/out.html 

    extensions: 
     Behat\WebApiExtension\Extension: 
      base_url: http://api.domain.org 

В FeatureContext.php файлы для входа-люкс и выход из системы-люкс с теперь разделены.

Проблема в том, что теперь вы не можете запускать все тесты сразу. Возможно, это будет возможно с использованием контекстов: http://docs.behat.org/guides/7.config.html#Context

Смежные вопросы