如何解决Laravel 6 升级后单元测试变得不稳定
我将 Laravel 从 5.8 升级到 6.0。我使用 Composer 2 并直接使用 PHP vendor/bin/PHPunit
在 docker 容器中运行单元测试(没关系)。 PHPunit 版本是 7.5.20。 PHP 版本是 7.3。
所有具有关系实体的单元测试都是不稳定的,这意味着它可以在没有任何更改的情况下通过。
代码如下所示:
$book = factory(Book::class)->create([
'title' => 'test'
]);
我也尝试在代码中直接创建相关记录:
$author = factory(Author::class)->create([])
$book = factory(Book::class)->create([
'title' => 'test','author' => $author->getKey()
]);
不过没关系。测试随机失败。而且每次都是不同的,或者不是。
解决方法
我发现了这个问题。这是性能升级 - https://laravel.com/docs/6.x/upgrade#eloquent-primary-key-type 对于我设置的每个具有字符串主键的实体
/**
* The "type" of the primary key ID.
*
* @var string
*/
protected $keyType = 'string';
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。