Ошибка проверки базы данных с помощью dbUnit

Я пытаюсь выполнить некоторые тесты базы данных с модулем php, но продолжаю получать следующие ошибки:
следующие ошибки:

Мой composer.json выглядит так:

{
"require": {
"phpunit/phpunit": "4.8",
"phpunit/dbunit": "^2.0"}

Это страница, на которой я пытаюсь выполнить тест:

<?php
require_once 'autoload.php';

class testDatabase extends \PHPUnit_Extensions_Database_TestCase {public function getConnection() {
$db = new PDO(
"mysql:host=localhost;dbname=mrf",
"", "");
return $this->createDefaultDBConnection($db, "bulletproof");
}

}
?>

Я использую автозагрузчик sql для загрузки основных классов php, и это выглядит следующим образом:

<?php
spl_autoload_register(function($class) {
require_once '../classes/' . $class . '.php';
});
?>

На мой взгляд, странно то, что обычные тесты phpunit работают, а тест dbUnit — нет. Я попробовал несколько обновлений composer, phpUnit и dbUnit, загруженных с packagist, но безуспешно.

Было бы здорово, если бы вы могли мне помочь,
Заранее спасибо.

1

Решение

Когда ты бежишь composer installкомпозитор генерирует файл PROJECT_ROOT/vendor/autoload.php, Этот файл содержит все необходимое для автозагрузки зависимостей вашего проекта, поэтому, основываясь на том, что я вижу на скриншоте, вам нужно require_once это так же, как и ваше собственное.


Как примечание: у phpunit есть опция --bootstrap=filename, который выполняется до запуска всех тестов. Вы можете запустить

phpunit --bootstrap=PROJECT_ROOT/vendor/autoload.php databaseTest.php

После этого вы можете создать что-то вроде phpunit_bootstrap.php, поместите require_once 'autoload.php'; здесь и композиторы vendor / autoload.php, чтобы вы могли запускать такие тесты, как

phpunit --bootstrap=path/to/your/phpunit_bootstrap.php AnythingYouWantToTest.php

без необходимости вставлять require_once 'autoload.php'; в каждом тестовом файле.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]