4

我想知道是否有办法为不同的功能使用不同的上下文类。

我想让一个功能使用 MinkExtensions 进行浏览器测试,另一个使用 HTTP 客户端(如 Guzzle)进行 API 测试 - 两者都有相似的步骤和不同的实现。

4

1 回答 1

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

login-suite 和 logout-suite 功能的 FeatureContext.php 文件现在是分开的。

问题是现在你不能一次运行所有的测试。使用上下文可能会这样做:http: //docs.behat.org/guides/7.config.html#Context

于 2013-10-25T14:07:27.507 回答