我想知道是否有办法为不同的功能使用不同的上下文类。
我希望有一个功能使用MinkExtensions进行浏览器测试,另一个使用和客户端一样使用Guzzle进行API测试 - 两者都会有不同实现的类似步骤。
答案 0 :(得分:5)
应该可以在Behat 3中看到http://everzet.com/tagged/Behat 特征: “支持每个标记,每个目录和每个角色的上下文类的多上下文运行。这个”角色的重要性“我一直在讲道的咒语最终将成为可能 每个角色最终都能拥有自己的步骤字典。“
目前,在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