2013-04-10 16 views
6

Questa è la mia struttura di directory:Behat - Classe di contesto non trovata.

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

ho fatto:

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

che ha creato la struttura di base per me. Questo è all'interno behat.yml:

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

Ora cerco di eseguire i test BDD come questo:

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

e ottengo:

[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] 

Qualsiasi idea di qual è il problema?

Ho installato Behat tramite Composer. Questo è il mio 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" 
    } 
} 

che ho installato con:

php composer.phar install --dev -o 

risposta

3

Questo è ciò che ha funzionato.

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

Con questo file di configurazione:

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

È inizializzato Behat pur essendo nella directory tests/functional, ma si sta cercando di eseguirlo dalla directory root.

risolvere il tuo percorsi:

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

o eseguire Behat da tests/functional directory.

Si consiglia di mantenere il layout del file originale (funzionalità nella directory principale). Modifica: In realtà, ho provato a configurarlo da solo e ha funzionato con la configurazione fornita. Ci deve essere qualcos'altro che stai facendo che non hai specificato nella domanda.

+0

Ancora ottenere lo stesso errore. Devo mantenere questa struttura di cartelle in quanto è una convenzione di progetto. Non può essere nella cartella principale. –

+0

Non voglio cambiare cartella bin. Sto usando anche altre librerie e i loro binari sono in vendor/bin / –