Igo*_*lyk 5 php phpunit unit-testing
我最近一直在运行几千个 phpunit 测试。我使用--process-isolation选项,因此完成测试需要大约 40 分钟。
有时在积极的重构之后,很多测试开始失败(感谢上帝,我有测试!)。如果测试在测试套件中间失败,那么我必须再等 20 分钟才能查看它是什么测试以及它的消息。
--stop-on-failure如果不中断整个过程,我会使用。基本上我正在寻找--log-on-failure选择。
我正在寻找的是在测试失败后立即查看测试失败/错误消息的某种方式,而不是在所有其他测试完成后。但不应中断其他测试执行的整个过程。记录到文件也足够了。
我会很感激你的建议。
编辑:我很高兴看到您的建议,我可以在总体上改进我的测试,我会尝试遵循它们,但是我想找到解决我的确切问题的方法。
很高兴你编写了所有这些测试。正如您所说,当您开始一项大型重构任务时,它们可以很快证明自己的价值!但 40 分钟听起来像是一组非常慢的测试,即使对于几千个测试也是如此 - 我在大约 10 秒内运行了数百个测试。也许您的一些测试特别慢?
如果您的系统适合这样做,则可能值得将它们分成几组,以便您可以将其设置为仅运行与正在更改的代码相关的测试。PHPUnit 支持测试分组,并在命令行上指定要运行的组。
如果您的大多数测试都非常快,但有一些非常慢的测试占用了大部分时间,这可能是一个特别有效的策略。如果您可以让它跳过一些不相关的非常慢的测试,那么将会产生很大的不同。
此外,这种对测试进行分组的策略还允许您在每个组中使用--stop-on-failure,同时仍然能够运行其他组中的所有测试。
有关分组测试的更多信息,请参阅PHPUnit 手册。
希望有帮助。