Behat версии 3.0.12, PHP 5.3.3
Я опишу проблему, прежде чем покажу свою настройку: я создаю небольшой тестовый проект Behat, но когда я пытаюсь создать дополнительные классы в других файлах, чтобы вставить их в мой файл контекста, Behat не загружает их автоматически. В документах говорится, что все в features/bootstrap
должно автоматически загружаться и быть доступным. Конкретная ошибка такова:
Fatal error: Class 'TestObject' not found in /data/drupal7/sites/behat-test/projects/test-project/features/bootstrap/TestContext.php on line 23
В документах версии 3 учебник определяет класс в новом PHP файл и приносит его без особых усилий. Попытка сделать то же самое в моей версии не работает.
У меня есть настройка Behat следующим образом:
composer.*
projects
vendor
Это стандартный результат установки Behat, за исключением новой папки, в которой у моих отдельных проектов есть собственная папка в project/<project name>
. Например, project/test_project
:
behat.yml
features
|-- test.feature
|-- bootstrap
|-- TestContext.php
|-- Test.php
Мой конфигурационный файл behat.yml
выглядит так:
default:
suites:
default:
paths: [ %paths.base%/features ]
bootstrap: [ $paths.features%/bootstrap ]
contexts: [ TestContext ]
TestContext.php
выглядит так:
<?php
use Behat\Behat\Tester\Exception\PendingException;
use Behat\Behat\Context\Context;
use Behat\Gherkin\Node\PyStringNode;
use Behat\Gherkin\Node\TableNode;
/**
* Behat context class.
*/
class TestContext implements Context
{
private $test;
public function __construct()
{
$this->test = new TestObject();
}
/**
* @Given I go to the Google homepage
*/
public function iGoToTheGoogleHomepage()
{
throw new PendingException();
}
}
И, наконец, Test.php
<?php
final class TestObject {
private $price = 0;
public function setPrice($amount) {
$this->price = $amount;
}
public function getPrice() {
return $this->price;
}
}
Любые идеи?