Я пытаюсь настроить тесты в Laravel, но я хочу запустить миграции, отличные от тех, которые обычно выполняются.
Миграции, которые я запускаю для запуска базы данных, импортируют данные из производственной среды.
Для тестирования я хочу использовать другую базу данных, называемую «тест», и хочу заполнить эту тестовую базу данных тестовыми данными, а не производственными данными.
Я добавил соединение «тестирования» в config/database.php
который использует «тестовую» базу данных:
'connections' => [
'mysql' => [
'database' => env('DB_DATABASE', 'forge'),
...
],
'testing' => [
'database' => 'test',
...
],
],
И я настраиваю phpunit.xml
для использования этого «тестового» соединения:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit ...>
...
<php>
<env name="DB_CONNECTION" value="testing"/>
...
</php>
</phpunit>
Теперь я хочу инициализировать эту «тестовую» базу данных с тестовыми данными, используя миграции из другой папки, отличной от папки по умолчанию.
Я могу использовать обычные миграции следующим образом:
<?php
namespace Tests;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
use Illuminate\Foundation\Testing\DatabaseMigrations;
abstract class TestCase extends BaseTestCase
{
use DatabaseMigrations;
public function setUp(): void
{
parent::setUp();
$this->seed();
}
}
Но для этого используется папка по умолчанию database/migrations
. Я хочу поместить тестовые миграции в папку tests/database/migrations
.
Можно ли разрешить use DatabaseMigrations;
использовать миграции из другой папки?