我正在尝试设置 Behat 3.0。我想改变我的特征去向的路径。
目前,我的 behat.yml
配置如下所示:
default:
autoload:
'': app/tests/acceptance
运行 behat --init
将在 app/tests
目录中创建 acceptance/FeatureContext.php
。
但是,它会在我的项目的根目录中创建 features
文件夹。相反,我希望将此 features
文件夹放在 app/tests/acceptance
文件夹中。
我该怎么做?
最佳答案
您唯一需要做的就是将自定义路径添加到默认配置文件:
default:
autoload:
'': %paths.base%/app/tests/acceptance
suites:
default:
paths: [ %paths.base%/app/tests/acceptance/features ]
技巧1
始终使用 %paths.base%
变量以便能够从不同的目录运行您的 Behat 测试。
技巧2
当您实现更多上下文时,依赖于 Behat 的 PSR-0 自动加载机制可能会出现问题。
好的做法是使用 Composer 的 PSR-4 自动加载机制来运行命名空间的 Behat 功能。
按照上面的示例设置 Behat 后,您需要删除 bahat.yml 中的自动加载部分,并将 contexts
添加到 default
配置文件中:
default:
suites:
default:
paths: [ %paths.base%/app/tests/acceptance/features ]
contexts: [ MyApp\Tests\Acceptance\FeatureContext ]
将自动加载配置添加到composer.json
:
{
[...]
"autoload-dev": {
"psr-4": {
"MyApp\\Tests\\Acceptance\\": "app/tests/acceptance"
}
}
[...]
}
然后使用 composer dump-autoload
简单地转储自动加载器。
关于php - Behat 3.0 功能文件夹/路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27905633/