我正在尝试使用带有 mink 扩展的 behat 来创建一个简单的案例场景。不过,我一开始就被困住了,几个小时的谷歌搜索似乎没有帮助。
我的作曲家需要
"require": {
"behat/behat": "3.0.6",
"behat/mink": "1.6.*",
"behat/mink-extension": "*",
"behat/mink-goutte-driver": "*"
}
我的贝哈特.yml
default:
autoload:
'': %paths.base%/features/bootstrap
suites:
default:
paths:
- %paths.base%/features
extensions:
Behat'MinkExtension:
base_url: 'http://example.com'
goutte: ~
我的功能上下文.php
<?php
use Behat'Behat'Context'SnippetAcceptingContext;
use Behat'MinkExtension'Context'MinkContext;
/**
* Behat context class.
*/
class FeatureContext extends MinkContext implements SnippetAcceptingContext
{
/**
* Initializes context.
*
* Every scenario gets it's own context object.
* You can also pass arbitrary arguments to the context constructor through behat.yml.
*/
public function __construct()
{
}
/**
* @Given /^I am on home page$/
*/
public function iGoToHomePage()
{
$session = $this->getSession();
$session->visit($this->locatePath('/'));
}
}
每当我使用我的功能运行 behat 时,我都会得到
Mink instance has not been set on Mink context class. Have you enabled the Mink Extension? (RuntimeException)
我仔细检查了缩进数十次,检查了供应商目录中是否存在命名空间,交换了东西。似乎没有什么帮助 - 这里有什么问题?
extensions
不适用于每个套件,因此将该指令上移一个级别,例如:
default:
autoload:
'': %paths.base%/features/bootstrap
extensions:
Behat'MinkExtension:
base_url: 'http://example.com'
goutte: ~
suites:
default:
paths:
- %paths.base%/features