2013-04-10 8 views
6

Das ist meine Verzeichnisstruktur:Behat - Kontextklasse nicht gefunden.

composer.json 
composer.phar 
vendor/ 
    bin/ 
     behat 
tests/ 
    functional/ 
     behat.yml 
     features/ 
      registration.feature 
      bootstrap/ 
       FeatureContext.php 

ich getan habe:

cd tests/functional 
../../vendor/bin/behat --init 

die für mich Grundstruktur geschaffen. Dies ist innerhalb behat.yml:

default: 
    paths: 
    features: '%behat.paths.base%/features' 
    bootstrap: '%behat.paths.base%/features/bootstrap' 

Jetzt versuche ich BDD Tests wie dies auszuführen:

vendor/bin/behat -c tests/functional/behat.yml 

Und ich bekomme:

[RuntimeException]              
    Context class not found.             
    Maybe you have provided wrong or no `bootstrap` path in your behat.yml: 
    http://docs.behat.org/guides/7.config.html#paths       



behat [--init] [-f|--format="..."] [--out="..."] [--lang="..."] [--[no-]ansi] [--[no-]time] [--[no-]paths] [--[no-]snippets] [--[no-]snippets-paths] [--[no-]multiline] [--[no-]expand] [--story-syntax] [-d|--definitions="..."] [--name="..."] [--tags="..."] [--cache="..."] [--strict] [--dry-run] [--rerun="..."] [--append-snippets] [--append-to="..."] [features] 

Jede Idee, was ist das Problem?

Ich habe Behat via Composer installiert. Das ist mein composer.json:

{ 
    "name": "hello", 
    "description": "Hello World", 
    "minimum-stability": "dev", 
    "require": { 
     "php": ">=5.3", 
     "zendframework/zendframework": "2.1.4", 
     "doctrine/common": "dev-master#d7987c96675e153638729383577090feed9854f1" 
    }, 
    "require-dev": { 
     "phpunit/phpunit": "3.7.14", 
     "behat/behat": "2.4.*@stable" 
    } 
} 

Was ich mit installiert:

php composer.phar install --dev -o 

Antwort

3

Das hat funktioniert.

cd tests/functional 
../../vendor/bin/behat --init 
cd ../../ 
vendor/bin/behat -c tests/functional/behat.yml 

Mit dieser Konfigurationsdatei:

default: 
    paths: 
    features: features 
    bootstrap: features/bootstrap 
6

Sie Behat initialisiert während im tests/functional Verzeichnis zu sein, aber Sie versuchen, es aus dem Stammverzeichnis zu laufen.

Fix Ihre Wege:

default: 
    paths: 
    features: 'tests/functional/features' 
    bootstrap: 'tests/functional/features/bootstrap' 

Oder Behat aus tests/functional Verzeichnis ausgeführt.

Ich würde empfehlen, das ursprüngliche Dateilayout (Features im Root-Verzeichnis) zu behalten. Edit: Eigentlich habe ich versucht, es selbst einzurichten und es funktionierte mit der Konfiguration, die Sie zur Verfügung gestellt. Sie müssen etwas anderes tun, was Sie in der Frage nicht angegeben haben.

+0

immer noch die gleichen Fehler. Ich muss diese Ordnerstruktur beibehalten, da es sich um eine Projektkonvention handelt. Es kann nicht im Stammordner sein. –

+0

Ich möchte den bin-Ordner auch nicht ändern. Ich benutze auch andere Bibliotheken und ihre Binärdateien sind in Vendor/bin / –