2012-06-06 45 views
9

我一直在關注本指南(並通過作曲家安裝了所有東西):http://docs.behat.org/cookbook/behat_and_mink.html並試圖讓Behat + Mink工作,但每次嘗試運行bin/behat時都會出現以下錯誤:努力讓水貂與Behat合作

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

這行代碼是:

return $this->getMink()->getSession($name); 

所以,出於某些原因,貂皮屬性是空的,但是我不知道爲什麼。

我.feature文件是完全一樣的一個指南中,該FeatureContext類也是從引導:

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 
{ 

} 

和我的供應商/貝哈特/貂/ behat.yml文件包含:

context: 
    extensions: 
    Behat\MinkExtension\Extension: 
     base_url: 'http://en.wikipedia.org/' 
     goutte: ~ 
     selenium2: ~ 

我也嘗試讓我的類擴展BehatContext,然後調用useContext,但是這給了我同樣的錯誤。 Behat本身似乎可以工作,只是任何與Mink產生致命錯誤的東西,我不知道如何解決它。

回答

8

這是因爲您應該將vendor/behat/behat/behat.yml.dist文件複製到your/project/root/behat.yml,而不是編輯供應商目錄中的文件並將extesions添加到default部分。

下面是什麼樣子:

default: 
    extensions: 
    Behat\MinkExtension\Extension: 
     base_url: http://lunch-time/app_dev.php 
     goutte: ~ 
     selenium2: ~ 

    paths: 
    features: features 
    bootstrap: features/bootstrap 

annotations: 
    paths: 
    features: features/annotations 

closures: 
    paths: 
    features: features/closures 
+0

另請參閱http://stackoverflow.com/a/28173700/425204瞭解有關此錯誤的其他修復程序 – spiritoo

0

我正面臨着類似的問題。我們需要告訴Symfony初始化對象。

在默認>套件> my_suite下添加後,我的位置得到了修復。

contexts: [Behat\MinkExtension\Context\MinkContext] 

這是我的新behat.yml的樣子。

default: 
    suites: 
     my_suite: 
      type: symfony_bundle 
      bundle: AcmeProjectManagerBundle 
      contexts: [Behat\MinkExtension\Context\MinkContext] 
extensions: 
    Behat\Symfony2Extension: ~ 
    Behat\MinkExtension: 
     base_url: http://en.wikipedia.org 
     goutte: ~ 
     selenium2: ~ 
     sessions: 
      default: 
       symfony2: ~