Richard Knop Richard Knop - 15 days ago 8
PHP Question

Behat - Context class not found.

This is my directory structure:

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


I did:

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


Which created basic structure for me. This is inside behat.yml:

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


Now I try to run BDD tests like this:

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


And I get:

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


Any idea what is the problem?

I installed Behat via Composer. This is my 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"
}
}


Which I installed with:

php composer.phar install --dev -o

Answer

This is what worked.

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

With this config file:

default:
  paths:
    features: features
    bootstrap: features/bootstrap
Comments