我正在尝试设置Behat 3.0。我想改变我的功能所在的路径。
目前,我的behat.yml
配置如下所示:
default:
autoload:
'': app/tests/acceptance
运行behat --init
将在acceptance/FeatureContext.php
目录中创建app/tests
。
但是,它会在项目的根目录中创建features
文件夹。我希望将此features
文件夹放在app/tests/acceptance
文件夹中。
我该怎么做?
答案 0 :(得分:11)
您唯一需要做的就是将自定义路径添加到默认配置文件:
default:
autoload:
'': %paths.base%/app/tests/acceptance
suites:
default:
paths: [ %paths.base%/app/tests/acceptance/features ]
始终使用%paths.base%
变量才能从其他目录运行Behat测试。
根据Behat的PSR-0自动加载机制在您实施更多上下文时可能会出现问题。
好的做法是使用作曲家的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
转储自动加载器。