我正在尝试安装 behat + mink(在 kohana 框架上,而不是 symfony 上,我将 behat 放入模块文件夹中 - 我写这个以防万一,但我想这不是导致我的问题的原因)。
我拥有与 behat 文档中相同的 search.feature 文件,我将 features/bootstrap 类更改为:
<?php
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
{
}
当我在 CLI 中键入“behat”时,我收到以下错误:在第 80 行的 .....RawMinkContext.php 中的非对象上调用成员函数 getSession()。
我在某处读到它是导致此错误的 behat.yml 文件。我认为正确的做法是在已安装的 behat 文件夹的根目录中创建新的 behat.yml 文件并将此代码放入其中:
default:
extensions:
Behat\MinkExtension\Extension:
base_url: http://wikipedia.org
goutte: ~
selenium2: ~
paths:
features: features
bootstrap: features/bootstrap
annotations:
paths:
features: features/annotations
closures:
paths:
features: features/closures
但是当然它给了我同样的错误。我尝试了很多配置:仅复制扩展部分,将默认值更改为上下文,将相同的内容复制到其他三个 behat.yml 文件(vendor/behat/behat、vendor/behat/monk 和 vendor/behat/monk -意图) - 没有工作。
有人能告诉我设置这个的正确方法是什么吗?也许这里的某人也有这个问题......
顺便提一句。当我安装 behat withough goutte 时,仅使用 selenium2 驱动程序,我收到未安装 goutte 的错误。但是当我用 goutte 安装它时,我收到了没有 fabpot/goutte 目录(或 fapbot/,我不记得了,但我想这是第一个 :D)的错误,所以我删除了所有内容并重新安装了 behat下面的 composer.json 文件,也许这也与这个错误有关:
{
"name": "behat/mink-browserkit-driver",
"description": "Symfony2 BrowserKit driver for Mink framework",
"keywords": ["Symfony2", "testing", "browser"],
"homepage": "http://mink.behat.org/",
"type": "mink-driver",
"license": "MIT",
"authors": [
{
"name": "Konstantin Kudryashov",
"email": "ever.zet@gmail.com",
"homepage": "http://everzet.com"
}
],
"require": {
"php": ">=5.3.1",
"symfony/browser-kit": ">=2.0.0,<2.2.0",
"symfony/dom-crawler": ">=2.0.0,<2.2.0",
"behat/behat": "2.4.*@stable",
"behat/mink": "1.4.*@stable",
"behat/mink-extension": "*",
"behat/mink-goutte-driver": "*",
"behat/mink-selenium2-driver": "*"
},
"minimum-stability": "dev",
"autoload": {
"psr-0": {
"Behat\\Mink\\Driver": "src/"
}
},
"config": {
"bin-dir": "bin/"
}
}