运行phpunit时不显示测试反馈

Posted

技术标签:

【中文标题】运行phpunit时不显示测试反馈【英文标题】:No test feedback is displayed when running phpunit 【发布时间】:2020-09-09 16:55:57 【问题描述】:

尝试此命令时docker-compose exec app php ./vendor/bin/phpunit

或者像/vendor/bin/phpunit这样的容器内

结果如下:

PHPUnit 8.5.4 by Sebastian Bergmann and contributors.

 ..F..FFFEE

虽然我需要更多详细信息,例如测试时间和失败信息。 我可以通过启用stopOnFailure = true获得一些信息

但这并不理想,因为它会在第一个停止,但我需要所有测试才能运行并查看结果。

我需要类似的东西:

PHPUnit 8.5.4 by Sebastian Bergmann and contributors.

.......................E.......................................  63 / 116 ( 54%)
.....................................................           116 / 116 (100%)

Time: 1.2 minutes, Memory: 48.50 MB

There was 1 error:
ERRORS!
Tests: 116, Assertions: 219, Errors: 1.

【问题讨论】:

我不确定 PHPUnit 是否支持显示测试时间。在此处查看可用选项:phpunit.readthedocs.io/en/9.0/textui.html 如有必要,您还可以创建自己的格式化程序:php5.laurent-laville.org/compatinfo/blog/… @MattInamdar 当然可以,在 Docker 容器外运行测试时我没有问题。一切正常。 【参考方案1】:

由于您使用的是 docker,默认情况下禁用显示错误的 php.ini 配置。

解决方案 1:

为你的 docker 更新 PHP 配置:

error_reporting = E_ALL
display_errors = On
display_startup_errors = On

参考https://***.com/a/40120445/494907

解决方案 2:

bootstrap 文件链接到phpunit.xml

<phpunit bootstrap="init.php">

在phpunit.xml目录下创建init.php:

<?php
ini_set('error_reporting', E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');

【讨论】:

我尝试了解决方案 1,但不幸的是它不起作用 要确认请使用 phpinfo() 检查值? 值没有改变。奇怪的是它可以在带有新 Laravel 的机器上运行,但不能在其他带有 Laravel 6 的机器上运行! 我已经关注digitalocean.com/community/tutorials/… 我真的需要帮助。我会很感激任何帮助 我按照教程,将它安装在 mac 上,我可以直接运行带有错误的测试。请分享 phpunit.xml,以便我可以与我的比较。

以上是关于运行phpunit时不显示测试反馈的主要内容,如果未能解决你的问题,请参考以下文章

如何解决应用程序运行时不显示通知的问题?

phpunit --debug仍然只显示点

phpunit xml配置颜色指令不起作用

Symfony 简单 PHPUnit 退出代码 1,未显示错误

Selenium 不显示失败的数字行

phpunit随机重启测试