Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何让behat知道要使用哪个功能上下文?_Php_Selenium_Phantomjs_Behat - Fatal编程技术网

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

Php 如何让behat知道要使用哪个功能上下文?,php,selenium,phantomjs,behat,Php,Selenium,Phantomjs,Behat,如何让behat知道使用哪个上下文?因为默认情况下,features文件夹中有这个FeatureContext.php,因此,当behat运行时,它将在.feature文件运行时使用该文件(场景)…问题是,如果我有很多模块要测试,当然,我不能将所有这些函数都放在一个FeatureContext.php文件中,对吗?我想命名不同的上下文和不同的.feature文件,那么如何让behat知道要运行哪个上下文和.feature文件呢 这是我用来发射behat的命令行 /export/home/proj

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

这是我用来发射behat的命令行

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

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

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

我的两分钱:我对你的应用程序一点也不了解,但不要混淆功能测试和单元测试(如果你知道的话)。当您从每个模块的上下文中受益时,可能会出现不同的情况,如“授权”、“管理”或“注释”,但它们的唯一目的是将代码从整个上下文中分离出来,形成一个更易于管理的块。它们仍然协同工作,覆盖整个应用程序(或其中非常独特的部分)。使用单元测试框架测试特定于模块的功能会容易得多,这样可以确保模块独立工作。

有没有办法只运行我想要的特定套件?因为在yaml文件中,我插入了一个新的,例如主页套件,如果我只想运行它呢?如何在yaml文件中配置它?因为当前,当我运行'behat--profile homepage时,结果也会运行另一个profilesYep,请使用
--suite=my_suite
cli选项。对于Behat 3来说,文档有点不完善,最新的是–有很多有用的东西。顺便说一句,我看到composer.json中的默认行为是来自文档中的2.4,版本3只是beta版吗?我知道,这就是为什么很少提到它的原因。这已经有一段时间了,但和其他项目一样,这项工作正在进行中。我已经成功地使用了几个月了。文档是主要的问题,但在2.x中并没有明显的改善。V3有很多新的改进,感觉它考虑了许多从V2学到的经验教训该团队反应迅速,而且很有帮助,因此我建议坚持使用V3以避免以后的重构。如果您想使用它,请确保在Composer中“dev master”所有Behat包。