在PHPUnit中缓存/预种子数据库数据

问题描述

我正在努力加快PHPUnits测试的速度,作为其中的一部分,我正在努力防止PHPUnit一次又一次地播种表数据。

我的问题示例:

  • 我有一个测试,可以测试将商品添加到购物车中的现有客户。
  • 要执行此测试,我需要在数据库中播种客户,产品,甚至类别等。
  • 我的测试类在setUp期间将必需的数据植入表中。问题在于,PHPUnit为类中的每个测试方法植入相同的数据。

因此,如果数据播种需要5秒钟,则总运行时间为5 *(测试方法数量)。

public function setUp(): void 
{
   $this->artisan('db:seed',['--class' => SomeSeeder::class]);
}

问题:

  1. 可以做些什么,以便每个测试类仅播种一次数据?
  2. 我可以做些什么来播种静态数据,这不太可能改变。即一次对PHPunit运行的所有测试进行类别或类型

注释

  • 我当前正在使用PHPUnit测试所使用的MysqL码头工人。
  • 我正在运行PHPUnit ^ 7.0
  • 我知道setUpBeforeClass,我正在寻找一个实际的例子-由于需要setUpBeforeClass是静态的,因此使此方法难以使用
  • 应该可以单独运行测试

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)