Методы запуска сеялок Laravel перед запуском тестов

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

Метод 1: используйте параметр --seedс командой php artisan test.

php artisan test --seed

Эта команда запустит тесты, а также запустит загрузчики базы данных перед выполнением тестов.

Метод 2: переопределить метод setUpв тестовом классе и вызвать сеялку вручную.

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
use Illuminate\Support\Facades\Artisan;
class ExampleTest extends BaseTestCase
{
    use DatabaseMigrations;
    protected function setUp(): void
    {
        parent::setUp();
        Artisan::call('db:seed');
    }
// ... Rest of your test methods
}

В этом методе метод setUpвызывается перед каждым тестом и запускает команду db:seedс использованием фасада Artisan.

Метод 3. Создайте специальную тестовую команду, которая запускает раздаточные устройства, а затем запускает тесты.

// Create a new command file, e.g., app/Console/Commands/TestWithSeeders.php
namespace App\Console\Commands;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
class TestWithSeeders extends Command
{
    protected $signature = 'test:seeders';
    protected $description = 'Run database seeders before running tests.';
    public function handle()
    {
        Artisan::call('db:seed');
        Artisan::call('test');
    }
}

После создания командного файла вы можете запускать тесты с сеялками с помощью следующей команды:

php artisan test:seeders