Я пытаюсь получить все записи из таблицы в тестовой функции.
призвание DB::table('degrees')->get()
возвращает все ожидаемые значения,
Но попытка запустить следующий код возвращает пустую коллекцию:
$db = $this->app->make('db');
$db->connection('testing');
$db->table('degrees')->get();
Единственная проблема, о которой я могу думать, это то, что проект настроен неправильно.
мой файл phpunit.xml:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"backupStaticAttributes="false"bootstrap="bootstrap/autoload.php"colors="true"convertErrorsToExceptions="true"convertNoticesToExceptions="true"convertWarningsToExceptions="true"processIsolation="false"stopOnFailure="false">
<testsuites>
<testsuite name="Feature">
<directory suffix="Test.php">./tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory suffix="Test.php">./tests/Unit</directory>
</testsuite>
</testsuites>
<filter>
<whitelist processUncoveredFilesFromWhitelist="true">
<directory suffix=".php">./app</directory>
</whitelist>
</filter>
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
</php>
</phpunit>
мой createApplication
функция:
/**
* Creates the application.
*
* @return Application
*/
public function createApplication(): Application
{
$app = require __DIR__ . '/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
return $app;
}
моя конфигурация базы данных для .env.testing
DB_CONNECTION=testing
DB_HOST=192.168.70.10
DB_DATABASE=testing
DB_USERNAME=homestead
DB_PASSWORD=secret
database.php
файл
'testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'testing'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
]
Я могу подтвердить, что есть данные в таблице, позвонив Degree::all()
или же DB::table('degrees')->get()
но звонит
$db=$this->app->make('db');
$db->connection('testing');
$db->table('degrees')->get();
возвращается пустым Collection
,
Laravel: 5.4.0
,
PHPUnit: 5.7.21
Задача ещё не решена.
Других решений пока нет …