2016-03-17 57 views
1

我正在嘗試使用behat和mink擴展來創建一個簡單的案例場景。儘管如此,我還是陷入了困境,幾個小時的谷歌搜索似乎沒有幫助。不能啓用Behat Mink擴展

我的作曲家需要

"require": { 
    "behat/behat": "3.0.6", 
    "behat/mink": "1.6.*", 
    "behat/mink-extension": "*", 
    "behat/mink-goutte-driver": "*" 
    } 

我behat.yml

default: 
    autoload: 
    '': %paths.base%/features/bootstrap 
    suites: 
    default: 
     paths: 
     - %paths.base%/features 
     extensions: 
     Behat\MinkExtension: 
      base_url: 'http://example.com' 
      goutte: ~ 

我FeatureContext.php

<?php 

use Behat\Behat\Context\SnippetAcceptingContext; 
use Behat\MinkExtension\Context\MinkContext; 

/** 
* Behat context class. 
*/ 
class FeatureContext extends MinkContext implements SnippetAcceptingContext 
{ 
    /** 
    * Initializes context. 
    * 
    * Every scenario gets it's own context object. 
    * You can also pass arbitrary arguments to the context constructor through behat.yml. 
    */ 
    public function __construct() 
    { 
    } 

    /** 
    * @Given /^I am on home page$/ 
    */ 
    public function iGoToHomePage() 
    { 
     $session = $this->getSession(); 
     $session->visit($this->locatePath('/')); 
    } 
} 

每當我跑貝哈特與我的特點,我得到

Mink instance has not been set on Mink context class. Have you enabled the Mink Extension? (RuntimeException) 

我仔細檢查幾十次縮進,檢查命名空間是否出現在供應商目錄中,交換事物。似乎沒有任何幫助 - 這裏有什麼問題?

+0

你的功能方面擴展'RawMinkContext'(或其親屬之一)? – bishop

+0

@bishop是的,它的確如此。我用featureContext.php –

+0

的內容更新了我的問題你是否將'extensions'移出'suites',以便'autoload','extensions'和'suites'在相同的YAML級別上? – bishop

回答

1

extensions不要每間套房適用,因此移動該指令升了一級,如:

default: 
    autoload: 
    '': %paths.base%/features/bootstrap 
    extensions: 
    Behat\MinkExtension: 
     base_url: 'http://example.com' 
     goutte: ~ 
    suites: 
    default: 
     paths: 
     - %paths.base%/features 
+0

謝謝,像魅力一樣工作 –

相關問題