如何让behat知道使用哪个功能上下文?

时间:2014-07-24 03:52:16

标签: php selenium phantomjs behat

如何让behat知道要使用哪个上下文?,因为默认情况下,feature文件夹中有这个FeatureContext.php,当behat运行时,它将在.feature文件运行时使用该文件(方案) )...问题是,如果我有很多模块要测试,当然,我不能把所有这些函数都放在一个FeatureContext.php文件中吗?我想要命名不同的上下文和不同的.feature文件,所以如何让behat知道要运行哪个上下文和.feature文件?

这是我用来解雇的命令行

/export/home/project/htdocs/bdd/bin/behat --profile phantomjs-via-webdriver

1 个答案:

答案 0 :(得分:1)

Behat使用您指定的所有上下文,唯一的方法是仅指定您要使用的上下文。根据Behat版本,语法也不同。对于Behat 2,answer解释了一种策略。对于Behat 3,您可以执行以下操作:

default:
    suites:
        module1:
            contexts:
                - 'FeatureContext1'
                - 'FeatureContext2'
        module2:
            contexts:
                - 'FeatureContext1'
                - 'FeatureContext3'

我的两分钱:我对你的应用程序没有最小的想法,但不要混淆功能和单元测试(如果你这样做)。当您从每个模块上下文中受益时,可能会有不同的情况,例如"授权"," admin"或"评论",但它们的唯一目的是分离代码从整体上下文到更易于管理的块。它们仍然可以一起工作并覆盖整个应用程序(或其中非常不同的部分)。使用单元测试框架可以更轻松地测试模块特定的功能,从而确保模块可以独立工作。