首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >behat + mink的问题

behat + mink的问题
EN

Stack Overflow用户
提问于 2012-08-21 19:11:47
回答 1查看 1.8K关注 0票数 1

我正在尝试安装behat + mink (在kohana框架上,而不是symfony上,我把behat放到模块文件夹中--我写这个只是为了以防万一,但我想这不是造成我问题的原因)。

我拥有与behat文档中相同的search.feature文件,我正在将特性/引导类更改为:

代码语言:javascript
复制
<?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文件,并将此代码放入其中:

代码语言:javascript
复制
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文件,也许这也和这个错误有关:

代码语言:javascript
复制
{
    "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/"
    }
}
EN

回答 1

Stack Overflow用户

发布于 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,因此添加

代码语言:javascript
复制
 require_once __DIR__.'/../../vendor/autoload.php';

并将类定义更改为:

代码语言:javascript
复制
 class FeatureContext extends Behat\MinkExtension\Context\MinkContext

在您的特性/引导/FeatureContext.php文件中。

现在一切都应该如期而至。我最近做了一个Behat+Mink+KO3设置,可以在这里看到我是如何做到的:https://github.com/Moult/Eadrax/commit/b5dd813c92b82aea29eea13b5a30bae170aa57e6

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12061469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档