首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FeatureContext中Ubuntu错误的Behat 3和Mink扩展

FeatureContext中Ubuntu错误的Behat 3和Mink扩展
EN

Stack Overflow用户
提问于 2016-05-12 21:06:50
回答 1查看 863关注 0票数 1

取决于我的FeatureContext类是否扩展了RawMinkContextMinkContext,我在运行Behat测试时遇到了问题。

这是我的FeatureContext.php

代码语言:javascript
复制
<?php

use Behat\Behat\Context\ClosuredContextInterface;
use Behat\Behat\Context\TranslatedContextInterface;
use Behat\Behat\Context\Context;
use Behat\Behat\Context\BehatContext;
use Behat\Behat\Exception\PendingException;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
use Behat\MinkExtension\Context\MinkContext;
use Behat\MinkExtension\Context\RawMinkContext;
use Behat\Behat\Context\SnippetAcceptingContext;

use Behat\Mink\Driver\Selenium2Driver;
use Behat\Behat\Hook\Scope\AfterStepScope;
use Goutte\Client;

class FeatureContext extends MinkContext implements Context, SnippetAcceptingContext {

    /**
     * Initializes context.
     * Every scenario gets its own context object.
     *
     * @since 1.0.0
     *
     * @param array $parameters context parameters (set them up through behat.yml)
     * @return null
     */

    public function __construct() {

    }/* __construct() */

}
?>

还有我的behat.yml

代码语言:javascript
复制
default:
    suites:
        default:
            path: %paths.base%/features
            contexts:
                - FeatureContext
                - Behat\MinkExtension\Context\MinkContext
                - Behat\MinkExtension\Context\RawMinkContext
    extensions:
        Behat\Symfony2Extension: ~
        Behat\MinkExtension:
            base_url: 'http://somesite.com'
            goutte: ~
            javascript_session: selenium2
            files_path: 'vendor'
            selenium2: ~
            sessions:
                default:
                    goutte: ~
                goutte:
                    goutte: ~
                selenium2:
                    selenium2: ~
                symfony2:
                    symfony2: ~
    formatters:
        html:
            output_path: %paths.base%/reports

PHP Fatal error: Call to a member function getSession() on a non-object in /home/behat/composer/vendor/behat/mink-extension/src/Behat/MinkExtension/Context/RawMinkContext.php on line 101

如果我是extend RawMinkContext而不是MinkContext,那么测试就会运行,但是它会添加(空白)在MinkContext中定义的默认步骤(例如,如果我在url上或者当我访问url等)。

如果我运行behat -c ./config/behat.yml (或者只运行./behat.yml -我在两个位置都有一个相同的behat.yml文件,因为我不确定它是否被正确使用),我将得到与上面相同的结果。我几乎肯定在做些蠢事..。

我的composer.json供参考:

代码语言:javascript
复制
{
"name": "behat mink skeleton",
"require": {
  "behat/behat":  "*",
  "behat/mink-extension": "*",
  "behat/mink-browserkit-driver": "*",
  "behat/mink-goutte-driver": "*",
  "behat/mink-selenium2-driver": "*",
  "bossa/phpspec2-expect": "*",
  "teaandcode/behat-guzzle-extension": "*",
  "sauce/sausage": ">=0.5",
  "sauce/connect": ">=3.0",
  "emuse/behat-html-formatter": "dev-master"
},
"minimum-stability": "dev",
"config": {
        "bin-dir": "bin/",
        "github-oauth": {
            "github.com": "ac1dd3678488663ccc1ba02a5d1d474e1a78bb93"
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-04 19:22:16

如果您在FeatureContext中扩展了MinkContext,那么从behat.yml中删除MinkContext。behat.yml文件应该只包含上下文部分下的本地上下文,在您的情况下,您不需要MinkContext或RawAwareContext,只需要FeatureContext。

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

https://stackoverflow.com/questions/37197396

复制
相关文章

相似问题

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