9

私はこのガイドに従っています(そしてcomposerを介してすべてをインストールしました):http://docs.behat.org/cookbook/behat_and_mink.html Behat + Minkを機能させようとしていますが、bin/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 
{

}

私の vendor/behat/mink/behat.yml ファイルには以下が含まれています。

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

クラスに BehatContext を拡張させてから useContext を呼び出してみましたが、同じエラーが発生します。Behat 自体は機能しているように見えますが、Mink で致命的なエラーが発生しただけで、修正方法がわかりません。

4

2 に答える 2

8

これは、ベンダー ディレクトリのファイルを編集してセクションに追加するのではなく、vendor/behat/behat/behat.yml.distファイルをにコピーする必要があるためです。your/project/root/behat.ymlextesionsdefault

そして、ここにそれがどのように見えるかがあります:

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
于 2012-07-16T09:07:16.500 に答える
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: ~
于 2015-04-30T06:10:19.887 に答える