在 PHPUnit 中重新运行上次失败的测试

2022-08-30 21:51:28

当其中一个测试失败时,可以使用标志来中断单元测试。--stop-on-failure

有没有办法快速告诉PHPUnit重新运行这个失败的测试,而不是手动提供完整的路径?


答案 1

从 PHPUnit 7.3 开始,您可以缓存测试结果,然后按缺陷对测试进行排序。

在 phpunit.xml 中,启用 :cacheResults

<?xml version="1.0" encoding="UTF-8"?>
<phpunit cacheResult="true"
         ...>

如果您不想编辑 phpunit.xml,也可以使用该标志运行测试。--cache-result

缓存结果时,PHPUnit 将在运行测试后创建一个文件。确保将此文件添加到全局 gitignore 文件中。.phpunit.result.cache

您可以像这样运行测试,首先运行以前失败的测试:

phpunit --order-by=defects --stop-on-failure

答案 2

看看 cli 选项。您可以在组织文档CLI 文档中找到示例。--filter

--过滤器

仅运行名称与给定模式匹配的测试。该模式可以是单个测试的名称,也可以是与多个测试名称匹配的正则表达式。

假设运行并失败:phpunit Tests/Tests/Stuff/ThatOneTestClassAgain::testThisWorks

您的选项是:

phpunit --filter ThatOneTestClassAgain

phpunit --filter testThisWorks

或大多数其他字符串以某种方式有意义


推荐