2012-06-06 14 views
9

Ich habe dieses Handbuch (und installiert alles über Composer): http://docs.behat.org/cookbook/behat_and_mink.html und bin versucht, Behat + Mink arbeiten, aber jedes Mal, wenn ich versuche, bin/behat ich bekomme den folgenden Fehler:Schwierigkeiten, Mink mit Behat zu arbeiten

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 

Diese Codezeile ist:

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

So aus irgendeinem Grunde das Nerz-Attribut leer ist, aber ich habe keine Ahnung, warum.

Meine .feature Datei ist genau das gleiche wie die in der Führung ist die FeatureContext Klasse auch von der Führung:

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 
{ 

} 

und mein Verkäufer/Behat/Nerz/behat.yml Datei enthalten:

Ich habe auch versucht, meine Klasse erweitern BehatContext und dann aufrufen UseContext, aber das gibt mir den gleichen Fehler. Behat selbst scheint zu funktionieren, es ist nur irgendetwas mit Mink, das diesen fatalen Fehler erzeugt und ich habe keine Ahnung, wie ich es beheben kann.

Antwort

8

Dies liegt daran, Sie vendor/behat/behat/behat.yml.dist Datei zu your/project/root/behat.yml, anstatt Editieren der Datei im Lieferantenverzeichnis kopieren soll und extesions zum default Abschnitt hinzufügen.

Und hier ist, wie es aussieht:

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

Siehe auch http://StackOverflow.com/a/28173700/425204 für weitere Korrekturen für diesen Fehler – spiritoo

0

ich ein ähnliches Problem konfrontiert. Wir müssen Symfony anweisen, das Objekt zu initialisieren.

Meine wurde nach dem Hinzufügen unter dem Standard> suites> my_suite behoben.

contexts: [Behat\MinkExtension\Context\MinkContext] 

Hier ist, wie meine neue behat.yml aussieht.

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: ~ 
Verwandte Themen