Странное поведение, которое может исходить из-за неправильного размещения.Я также не уверен, что вся информация поможет сохранить эту краткую информацию, но все же покроет проблему - обновления будут добавлены по мере необходимости.
Рассмотрим ванильную установку Laravel.
// UserTest.php
class UserTest extends TestCase
{
use RefreshDatabase;
public function testOne()
{
$user = User::make(['email' => 'one@neo.com']);
$user->save();
$this->assertTrue($user->id == 1);
}
public function testTwo()
{
$user = User::make(['email' => 'two@wot.com']);
$user->save();
$this->assertTrue($user->id == 1);
}
}
Запуск тестовпо одному они оба проходят (phpunit --filter=testOne
и phpunit --filter=testTwo
).Запустите их последовательно, все, кроме первого, приведут к ошибке с ошибкой тайм-аута (phpunit
).
Что происходит (я действительно хотел бы понять, почему)?И что за исправление?
Что я пробовал:
- Использовать SQLite в памяти.
- Использовать DatabaseTransactions вместо DatabaseRefresh
Хотелось бы быть как можно ближе к производству.