Intereting Posts
Ограничение командной строки PHP cli safe_mode получение предупреждения «Заголовок может содержать не более одного заголовка, обнаружена новая строка» PHP fopen () терпит неудачу в файлах даже с широко открытыми разрешениями как сортировать и упорядочивать данные из файла csv в php Как я могу проверить CSS внутри скрипта? Какие шаблоны я мог бы использовать в коде, чтобы упростить перевод на другой язык программирования? Добавление минут к дате времени в PHP Как узнать, соблюдает ли часовой пояс летнее время в любое время года? WordPress Неустранимая ошибка: допустимый размер памяти 536870912 байт исчерпан (пытался выделить 77 байт) в wp-includes / wp-db.php в строке 1832 Пользовательская модель и поля с Sentinel / Laravel используя wp_authenticate () для перенаправления определенных пользователей при входе в систему Есть ли способ проверить, требуется ли видео с YouTube, используя его API Печать Ymd список бизнес-дат между двумя датами из MySQL с использованием PHP MySQL, похоже, переписывает записи Может ли php обнаруживать 4-байтовые кодированные символы utf8?

Cakephp 3 – MissingDatasourceConfigException при запуске теста phpunit

Я пытаюсь запустить некоторые модульные тесты в CakePHP 3 с PHPUnit 4.7.3, но я получаю следующую ошибку:

PHPUnit 4.7.3 by Sebastian Bergmann and contributors. There was 1 error: 1) App\Test\TestCase\Model\Table\MoviesTableTest::testFindMoviesByGenre Cake\Datasource\Exception\MissingDatasourceConfigException: The datasource configuration "default" was not found. C:\xampp\htdocs\movie-pal\vendor\cakephp\cakephp\src\Datasource\ConnectionManager.php:188 C:\xampp\htdocs\movie-pal\vendor\cakephp\cakephp\src\ORM\TableRegistry.php:191 C:\xampp\htdocs\movie-pal\tests\TestCase\Model\Table\MoviesTableTest.php:17 FAILURES! Tests: 1, Assertions: 0, Errors: 1. 

Я попытался следовать за книгой, но, вероятно, я что-то пропустил.

В app.php у меня есть:

 'Datasources' => [ 'default' => [ 'className' => 'Cake\Database\Connection', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'host' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'movies', 'encoding' => 'utf8', 'timezone' => 'UTC', 'cacheMetadata' => true, 'quoteIdentifiers' => false, ], 'test' => [ 'className' => 'Cake\Database\Connection', 'driver' => 'Cake\Database\Driver\Mysql', 'persistent' => false, 'host' => 'localhost', 'username' => 'root', 'password' => '', 'database' => 'test_movies', 'encoding' => 'utf8', 'timezone' => 'UTC', 'cacheMetadata' => true, 'quoteIdentifiers' => false, ], ], 

Мой тестовый класс:

 namespace App\Test\TestCase\Model\Table; use App\Model\Table\MoviesTable; use Cake\ORM\TableRegistry; use Cake\TestSuite\TestCase; class MoviesTableTest extends TestCase { public $fixtures = ['app.movies']; public function setUp() { parent::setUp(); $this->Movies = TableRegistry::get('Movies'); } public function testFindMoviesByGenre() { ....... } } 

phpunit.xml

  <?xml version="1.0" encoding="UTF-8"?> <phpunit colors="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" bootstrap="./tests/bootstrap.php" > <php> <ini name="memory_limit" value="-1"/> <ini name="apc.enable_cli" value="1"/> </php> <!-- Add any additional test suites you want to run here --> <testsuites> <testsuite name="App Test Suite"> <directory>./tests/TestCase</directory> </testsuite> <!-- Add plugin test suites here. --> </testsuites> <!-- Setup a listener for fixtures --> <listeners> <listener class="\Cake\TestSuite\Fixture\FixtureInjector" file="./vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php"> <arguments> <object class="\Cake\TestSuite\Fixture\FixtureManager" /> </arguments> </listener> </listeners> </phpunit> во  <?xml version="1.0" encoding="UTF-8"?> <phpunit colors="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" bootstrap="./tests/bootstrap.php" > <php> <ini name="memory_limit" value="-1"/> <ini name="apc.enable_cli" value="1"/> </php> <!-- Add any additional test suites you want to run here --> <testsuites> <testsuite name="App Test Suite"> <directory>./tests/TestCase</directory> </testsuite> <!-- Add plugin test suites here. --> </testsuites> <!-- Setup a listener for fixtures --> <listeners> <listener class="\Cake\TestSuite\Fixture\FixtureInjector" file="./vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php"> <arguments> <object class="\Cake\TestSuite\Fixture\FixtureManager" /> </arguments> </listener> </listeners> </phpunit> во  <?xml version="1.0" encoding="UTF-8"?> <phpunit colors="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" bootstrap="./tests/bootstrap.php" > <php> <ini name="memory_limit" value="-1"/> <ini name="apc.enable_cli" value="1"/> </php> <!-- Add any additional test suites you want to run here --> <testsuites> <testsuite name="App Test Suite"> <directory>./tests/TestCase</directory> </testsuite> <!-- Add plugin test suites here. --> </testsuites> <!-- Setup a listener for fixtures --> <listeners> <listener class="\Cake\TestSuite\Fixture\FixtureInjector" file="./vendor/cakephp/cakephp/src/TestSuite/Fixture/FixtureInjector.php"> <arguments> <object class="\Cake\TestSuite\Fixture\FixtureManager" /> </arguments> </listener> </listeners> </phpunit> 

Solutions Collecting From Web of "Cakephp 3 – MissingDatasourceConfigException при запуске теста phpunit"

Проблема была в командной строке, когда я запускал свои тесты в Windows PowerShell, все было в порядке.

У меня была такая же проблема с использованием Ubuntu 14.04 (здесь не PowerShell). В моем случае проблема заключалась в том, что я запускал тесты из неправильного местоположения. Согласно документации, вы должны быть в папке с корневым каталогом приложения, чтобы правильно выполнять ваши тесты.

Поэтому в вашем случае это будет примерно так:

 $ cd /path/to/your/app $ vendor/bin/phpunit tests/TestCase/Model/Table/MoviesTable