php 随机测试中的有害生物错误,该怎么办?

3df52oht  于 2023-09-29  发布在  PHP
关注(0)|答案(1)|浏览(118)

我用Pest为我的Laravel应用程序编写了大约90个测试。大多数情况下,所有测试都通过了,但有时即使我没有对代码库做任何更改,我也会得到一个错误。
错误是相同的,但每次发生在不同的测试中。失败的测试的唯一共同点是seed()函数的使用。
每次使用php artisan db:seedphp 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 trait,并且在运行测试批处理之前清除该高速缓存。
有谁知道为什么会发生这种情况,或者如何解决?

xtfmy6hx

xtfmy6hx1#

我自己修好的。有一些逻辑依赖于随机性,有时数据库没有正确播种。

相关问题