Я пишу тесты с приборами, как описано here.Почему при запуске тестов отсутствует соединение с источником данных по умолчанию?
Мой самозагрузки для испытаний:
if (!getenv('db_dsn')) {
putenv('db_dsn=sqlite:///:memory:');
}
ConnectionManager::config('test', ['url' => getenv('db_dsn')]);
ConnectionManager::config('test_custom_i18n_datasource', ['url' => getenv('db_dsn')]);
Мой код:
use Cake\TestSuite\TestCase;
class BackupExportTest extends TestCase
{
public $fixtures = ['core.articles', 'core.comments'];
public function setUp()
{
parent::setUp();
$this->Articles = \Cake\ORM\TableRegistry::get('Articles');
}
public function testMyFunction()
{
$query = $this->Articles->find('all');
}
}
Теперь, выполнив тест, это исключение:
PHPUnit 5.4.6 by Sebastian Bergmann and contributors.
E 1/1 (100%)
Time: 62 ms, Memory: 4.00MB
There was 1 error:
1) MysqlBackup\Test\TestCase\Utility\BackupExportTest::testMyFunction
Cake\Datasource\Exception\MissingDatasourceConfigException: The datasource configuration "default" was not found.
/home/mirko/Libs/Plugins/cakephp-mysql-backup/vendor/cakephp/cakephp/src/Datasource/ConnectionManager.php:196
/home/mirko/Libs/Plugins/cakephp-mysql-backup/vendor/cakephp/cakephp/src/ORM/Locator/TableLocator.php:175
/home/mirko/Libs/Plugins/cakephp-mysql-backup/vendor/cakephp/cakephp/src/ORM/TableRegistry.php:110
/home/mirko/Libs/Plugins/cakephp-mysql-backup/tests/TestCase/Utility/BackupExportTest.php:38
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
Таким образом, кажется, \Cake\ORM\TableRegistry::get()
поисковые запросы для default
подключение. Зачем? Как решить?
EDIT
phpunit.xml.dist
здесь:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
colors="true"
processIsolation="false"
stopOnFailure="false"
syntaxCheck="false"
bootstrap="./tests/bootstrap.php"
>
<testsuites>
<testsuite name="cakephp-mysql-backup Test Cases">
<directory>./tests/TestCase</directory>
</testsuite>
</testsuites>
<!-- configure code coverage -->
<filter>
<whitelist>
<directory suffix=".php">./src/</directory>
</whitelist>
</filter>
</phpunit>
Исключение брошено, запустив phpunit
или phpunit tests/TestCase/Utility/BackupExportTest.php
через Никс терминал. phpunit
находится на /usr/bin/phpunit
и отправлен через пакет deb.
Что именно делает команду выглядеть, что вы используете для запуска PHPUnit? И откуда именно вы его запускаете? Также как выглядит ваш файл 'phpunit.xml'? – ndm
@ndm Я не понял ваш первый вопрос. Файл phpunit.xml.dist [здесь] (https://github.com/mirko-pagliai/cakephp-mysql-backup/blob/master/phpunit.xml.dist) –
Пожалуйста, добавьте код на свой вопрос, чтобы он является самодостаточным для будущих читателей. С моим первым вопросом я просил команду CLI, которую вы используете для запуска phpunit, и откуда в файловой системе и через какой CLI (nix-терминал, Windows по умолчанию CLI, windows powershell и т. Д.) Вы запускаете Это. – ndm