随机测试中的害虫错误,该怎么办?
Pest errors in random tests, what to do?
我的 Laravel 应用程序使用 Pest 编写了大约 90 个测试。大多数情况下,所有测试都会通过,但 有时 即使我不对代码库进行任何更改,我也会收到错误消息。
同样的错误,但每次都出现在不同的测试中。失败测试的唯一共同点是 seed()
函数的用法。
我每次使用 php artisan db:seed
和 php artisan migrate:fresh -- seed
时数据库种子都正确
• Tests\Feature\Domain\Product\Resources\DeleteProductTest > it can remove a product
InvalidArgumentException
You requested 1 items, but there are only 0 items available.
at tests/Feature/Domain/Product/Resources/DeleteProductTest.php:17
13▕ /** @var \Domain\User\Models\User $bob */
14▕ $bob = User::factory()->create();
15▕ actingAs($bob);
16▕
➜ 17▕ seed();
18▕
19▕ $product = Product::all()->random();
20▕
我正在使用 RefreshDatabase 特征,我正在 运行 测试批次之前清除缓存。
有谁知道为什么会发生这种情况或如何解决?
我自己修好了。有一些逻辑依赖于随机性,有时数据库没有正确播种。
我的 Laravel 应用程序使用 Pest 编写了大约 90 个测试。大多数情况下,所有测试都会通过,但 有时 即使我不对代码库进行任何更改,我也会收到错误消息。
同样的错误,但每次都出现在不同的测试中。失败测试的唯一共同点是 seed()
函数的用法。
我每次使用 php artisan db:seed
和 php artisan migrate:fresh -- seed
• Tests\Feature\Domain\Product\Resources\DeleteProductTest > it can remove a product
InvalidArgumentException
You requested 1 items, but there are only 0 items available.
at tests/Feature/Domain/Product/Resources/DeleteProductTest.php:17
13▕ /** @var \Domain\User\Models\User $bob */
14▕ $bob = User::factory()->create();
15▕ actingAs($bob);
16▕
➜ 17▕ seed();
18▕
19▕ $product = Product::all()->random();
20▕
我正在使用 RefreshDatabase 特征,我正在 运行 测试批次之前清除缓存。
有谁知道为什么会发生这种情况或如何解决?
我自己修好了。有一些逻辑依赖于随机性,有时数据库没有正确播种。