如何在测试过程中停止 PHPUnit 但仍然获得失败/报告列表?

Posted

技术标签:

【中文标题】如何在测试过程中停止 PHPUnit 但仍然获得失败/报告列表?【英文标题】:How to stop PHPUnit in the middle of tests but still get a list of failures / reports? 【发布时间】:2018-10-27 11:34:11 【问题描述】:

我们有一个运行 30 分钟或更长时间的测试套件,我经常看到这样的情况:

我通常不想在第一次失败时中断 (--stop-on-failure),但在这个特定示例中,我也不想再等待 10-15 分钟让测试套件完成。如果我按 Ctrl+C,进程会立即停止,我不会看到任何消息。

我对 phpUnit 在控制台中使用的格式特别感兴趣,我发现它非常有用。例如,使用--testdox-text 记录到文件会生成一个不错但不是很详细的列表。使用--log-teamcity 进行日志记录非常冗长且技术性很强。

有没有办法在测试套件完全完成之前查看“类似控制台”的 PHPUnit 消息?


更新:我还开了一个issue in the official repo。

【问题讨论】:

您是否已经看过 --verbose 或 --debug 了? @ThomasVdBerge 上面的例子已经使用了--verbose--debug 略有不同。 【参考方案1】:

也许你可以在你的 phpunit.xml 文件中注册一个listener 并实现它的 addFailure() 方法来在控制台或文件中显示一些信息...

【讨论】:

以上是关于如何在测试过程中停止 PHPUnit 但仍然获得失败/报告列表?的主要内容,如果未能解决你的问题,请参考以下文章

PHPunit - 错误

phpunit --debug仍然只显示点

如何使用 laravel 和 phpunit 测试文件上传?

phpunit随机重启测试

Symfony 3模拟服务功能测试phpunit和liip

开发推送通知突然停止工作,但测试飞行推送通知仍然有效