2012-06-06 47 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: ~