微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 6 升级后单元测试变得不稳定

如何解决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 举报,一经查实,本站将立刻删除。