jbzoo / phpunit-randomizer
以随机顺序执行测试用例,以便检查是否存在隐藏依赖
Requires (Dev)
- phpunit/phpunit: ^7.0
This package is auto-updated.
Last update: 2020-05-20 00:10:51 UTC
README
A PHPUnit 扩展,允许您以随机顺序执行测试用例。这样您就可以识别出由于共享某些状态(如对象状态或数据库状态)而依赖于其他测试的测试用例。PHPUnit 有一个选项可以在进程隔离中执行测试用例,但当您有大量测试用例时,这会花费很多时间。
使用此库,您无需修改任何 PHPUnit 代码。只需安装它,然后使用来自 vendor 文件夹的二进制文件(vendor/fiunchinho/phpunit-randomizer/bin/phpunit-randomizer
)来运行您的测试,而不是使用默认的 phpunit 命令。
用法
可执行二进制文件位于 bin 文件夹中,并且它的工作方式与默认的 phpunit 文件完全相同,接受相同的参数,除了一个:order
参数。
$ bin/phpunit-randomizer -h
当您使用此库执行测试时,除非您使用 --order rand
参数,否则您将获得与使用常规 PHPUnit 安装相同的结果。尝试执行以下操作
$ bin/phpunit-randomizer --order rand
如果您查看输出,您会看到它说测试已使用随机种子随机化。如果您没有指定任何种子(如上面的示例),则每次执行测试时都会随机计算种子。但如果你想要重复一个对你有意义的特定顺序(例如,因为失败),你可以在 order
参数中指定该种子。
例如,让我们尝试执行示例测试(打印测试用例名称,这样我们就可以看到它们的执行顺序)两次,并查看顺序如何不同。
在这里,您可以查看两次执行中测试用例顺序的不同。您还可以看到两种情况中使用的种子(第一个是 8639,第二个是 4674)。现在,如果我们想重复第二次执行的顺序,我们可以选择相同的种子。
如您所见,顺序完全相同。