Я пытаюсь запустить некоторые браузерные тесты на sqlite в файловой базе данных отдельно от моего приложения.
В одном процессе я запускаю
APP_ENV=local artisan serve --env=dusk.local
А в другом бегу
APP_ENV=local artisan dusk
Похоже, что мои тестовые прогоны, база данных мигрирует, запускает мой тест, который проходит, а затем откатывается, как и ожидалось.
Однако после успешного теста мой журнал Laravel заполняется множеством исключений, отличающихся от тех, которые можно было бы ожидать при выполнении запроса в отсутствие схемы и данных, и других, таких как
General error: 17 database schema has changed in [...]/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php:91
Я не могу понять, почему он делает запрос или что-то делает после успешного теста.
class RegistrationTest extends DuskTestCase
{
use DatabaseMigrations;
public function testUserCanRegister()
{
// Some factories here
$this->browse(function (Browser $browser) {
$browser->visit('/register')
->assertSee('Sign up');
});
}
Который дает
PHPUnit 5.7.21 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 5.5 seconds, Memory: 22.00MB
OK (1 test, 1 assertion)
Но затем я вижу, что мои файлы журналов полны ошибок, если я их выслеживаю.
Кто-нибудь может пролить свет на то, что может происходить?
Файл окружения сумерек, который я использую, приведен ниже.
APP_ENV=local
APP_KEY=...
APP_URL=http://localhost:8000
DB_DEFAULT=app_testing
DB_CONNECTION=app_testing
SECOND_DB_CONNECTION=other_testing #app uses 2 separate databases
SESSION_DRIVER=file
Обновление: некоторые неверные URL-адреса активов вызывали последующие неудачные запросы.
Однако, если я отключу откат, ни одно из вышеупомянутых зарегистрированных исключений не будет создано. Откат, кажется, вызывает проблемы, если данные существуют.
Если я разрешаю откат, но не запускаю фабрики во время теста, он откатывается нормально.
Если я разрешаю откат после вставки данных во время теста, он откатывается, но с множеством исключений.