我一直在关注本指南(并通过 Composer 安装了所有内容):http://docs.behat.org/cookbook/behat_and_mink.html并试图让 Behat + Mink 工作,但每次我尝试运行 bin/behat 时都会收到以下错误:
PHP Fatal error: Call to a member function getSession() on a non-object in vendor/behat/mink-extension/src/Behat/MinkExtension/Context/RawMinkContext.php on line 80
那行代码是:
return $this->getMink()->getSession($name);
所以由于某种原因,貂属性是空的,但我不知道为什么。
我的 .feature 文件与指南中的完全相同,FeatureContext 类也来自指南:
use Behat\Behat\Context\ClosuredContextInterface,
Behat\Behat\Context\TranslatedContextInterface,
Behat\Behat\Context\BehatContext,
Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode,
Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;
/**
* Features context.
*/
class FeatureContext extends MinkContext
{
}
我的 vendor/behat/mink/behat.yml 文件包含:
context:
extensions:
Behat\MinkExtension\Extension:
base_url: 'http://en.wikipedia.org/'
goutte: ~
selenium2: ~
我也试过让我的类扩展 BehatContext 然后调用 useContext 但这给了我同样的错误。 Behat 本身似乎工作它只是任何与 Mink 产生 fatal error ,我不知道如何解决它。
最佳答案
这是因为你应该复制 vendor/behat/behat/behat.yml.dist
文件到 your/project/root/behat.yml
,而不是在供应商目录中编辑文件并添加 extesions
到default
部分。
这就是它的样子:
default:
extensions:
Behat\MinkExtension\Extension:
base_url: http://lunch-time/app_dev.php
goutte: ~
selenium2: ~
paths:
features: features
bootstrap: features/bootstrap
annotations:
paths:
features: features/annotations
closures:
paths:
features: features/closures
关于behat - 努力让 Mink 与 Behat 合作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10918475/