jbzoo/phpunit-randomizer

此包已废弃且不再维护。没有推荐替代包。
关于此包最新版本(3.2.0)没有可用的许可信息。

以随机顺序执行测试用例,以便检查是否存在隐藏依赖

3.2.0 2018-03-16 21:17 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 参数中指定该种子。

例如,让我们尝试执行示例测试(打印测试用例名称,这样我们就可以看到它们的执行顺序)两次,并查看顺序如何不同。

Executing randomly your tests

在这里,您可以查看两次执行中测试用例顺序的不同。您还可以看到两种情况中使用的种子(第一个是 8639,第二个是 4674)。现在,如果我们想重复第二次执行的顺序,我们可以选择相同的种子。

Executing randomly your tests

如您所见,顺序完全相同。

PHPUnit