我正在尝试安装behat + mink (在kohana框架上,而不是symfony上,我把behat放到模块文件夹中--我写这个只是为了以防万一,但我想这不是造成我问题的原因)。
我拥有与behat文档中相同的search.feature文件,我正在将特性/引导类更改为:
<?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文件(供应商/behat/behat,供应商/behat/ same,以及供应商/behat/monk-ententions)--没有任何效果。
有人能告诉我什么是正确的方法来设置这个吗?也许这里有人对此也有意见..。
顺便说一下。当我用goutte安装behat时,只使用selenium2驱动程序时,会发现goutte没有安装的错误。但是,当我用goutte安装它时,我收到的错误是没有fabpot/goutte目录(或者fapbot/,我不记得了,但我猜它是第一个:D),所以我删除了所有内容,重新安装了下面的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/"
}
}发布于 2012-09-21 06:15:00
安装Behat+Mink的推荐方法是通过Composer安装,而不仅仅是Kohana。有关说明,请参见intro.html。您的composer.json中包含的autoload子句不是必需的。
至于您的模块尝试,KO3.2还没有能力加载PSR-0,因此将其放入模块将不允许正确加载它。
不要随机复制您的behat.yml --您只需要在项目根目录中复制一个副本。如果您担心,可以通过behat.yml显式地通过bin/behat -c /path/to/behat.yml加载
如果您的composer.json设置正确,具有mink依赖项,那么您可以只执行bin/behat -dl来验证mink的工作。
然后,您可以执行bin/behat --init来创建您的特性文件结构。
这将创建一个覆盖Mink定义的FeatureContext,因此添加
require_once __DIR__.'/../../vendor/autoload.php';并将类定义更改为:
class FeatureContext extends Behat\MinkExtension\Context\MinkContext在您的特性/引导/FeatureContext.php文件中。
现在一切都应该如期而至。我最近做了一个Behat+Mink+KO3设置,可以在这里看到我是如何做到的:https://github.com/Moult/Eadrax/commit/b5dd813c92b82aea29eea13b5a30bae170aa57e6
https://stackoverflow.com/questions/12061469
复制相似问题