Черта Laravel RefreshDatabase не оборачивает каждый тест в транзакциюPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Черта Laravel RefreshDatabase не оборачивает каждый тест в транзакцию

Сообщение Anonymous »

В документации RefreshDatabase указано, что

Трайт Illuminate\Foundation\Testing\RefreshDatabase не переносит вашу базу данных, если ваша схема актуальна . Вместо этого он выполнит тест только в рамках транзакции базы данных.

Я использую Laravel 10 и думаю, что он не работает должным образом в моем проекте.
Проблема №1
Поскольку для выполнения миграции проекта требуется около 1 млн (

Код: Выделить всё

php artisan migrate:fresh --env testing
) У меня есть локальная база данных тестирования, которую я постоянно обновляю, чтобы быстро запускать тесты, но выполнение тестов всегда занимало не менее 1 м, как если бы перед запуском тестов выполнялись все миграции.
Проблема №2
Мне нужно проверить, попадает ли фрагмент кода в ветку catch(Exception $e), и поскольку это фрагмент кода извлекает результаты из базы данных, я думал изменить имя таблицы после всю настройку, чтобы он выдавал исключение, и это сработало.

Проблема в том, что теперь каждый последующий тест в одном и том же тестовом классе тестирует одну и ту же часть часть кода завершается с ошибкой SQLSTATE[42S02]: базовая таблица или представление не найдено: это означает, что таблица все еще имеет новое неправильное имя, поэтому похоже, что это не единственный тест, который нужно обернуть в миграцию, но все тесты в одном тестовом классе, но это конфликты с предыдущей операцией базы данных (например, создание экземпляров), не влияющие на последующие тесты.
Я действительно не могу понять, что не работает должным образом.

Подробнее здесь: https://stackoverflow.com/questions/791 ... ransaction
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»