我过去曾经尝试过Behat 2.5,但没有设置问题,但是现在我只是下载了Behat 3,尝试设置它时遇到了一些困难.
我的问题是,在全新安装后,如果我创建behat.yml文件,则似乎无法定义FeatureContext文件的位置,并且无法运行任何测试.
我的composer.json如下所示:
{
"require-dev": {
"behat/behat": "~3.0.4",
"sensiolabs/behat-page-object-extension": "2.0.*@dev"
},
"require": {
"behat/mink": "1.6.*",
"behat/mink-goutte-driver": "*",
"behat/mink-selenium2-driver": "*"
}
}
我的项目文件夹的结构如下:
behat/
bootstrap/
FeatureContext.PHP
config/
behat.yml
features/
CheckHome.feature
vendor/
composer.json
composer.lock
还有我的behat.yml文件:
default:
autoload:
'': %paths.base%/../bootstrap
suites:
default:
paths:
- %paths.base%/../features
contexts:
- FeatureContext
当我尝试使用以下方法运行CheckHome.feature中的方案时
vendor/bin/behat
我收到以下错误:
Behat\Behat\Context\Exception\ContextNotFoundException]
`FeatureContext` context class not found and can not be used.
谢谢
解决方法:
您不需要像那样写.它适用于我以下:
# behat.yml
default:
autoload: [ %paths.base%/contexts ]
extensions:
Behat\MinkExtension:
base_url: http://www.google.com
sessions:
default:
selenium2: ~
Sanpi\Behatch\Extension: ~
suites:
default:
paths: [ %paths.base%/features ]
filters:
contexts:
- FeatureContext
注意,我不必将其放在新行上或将其视为关联数组.我将上下文更改为从根目录的“ contexts”目录自动加载.我发现它是“功能”下的子文件夹,并且默认情况下将该文件夹称为“引导程序”而不是“上下文”,这有点令人讨厌.
我希望更好地记录Behat3.x.您甚至无法在任何地方的代码中清楚地找到此信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。