在 PHPUnit 的代码覆盖率输出中禁用颜色

Disable colors in code coverage output from PHPUnit

我想对我的一个小 PHP 项目进行自动化测试,到目前为止它运行良好,我唯一无法开始工作的是代码覆盖率报告。

在 Gitlab-Ci 中有选项 Test coverage parsing,它接受正则表达式。 到目前为止一切顺利,我在 http://jarretbyrne.com/2015/04/gitlab-ci-phpunit-test-coverage-parsing/ 处找到了一个正则表达式:^\s*Lines:\s*\d+.\d+\%

但正如评论所说:它不适用于启用颜色。 PHPUnit 有命令行开关 --colors-[always|never|auto] 但此选项仅适用于正常输出。

如何关闭 --coverage-text 的颜色?我可以使用另一个正则表达式吗?

编辑:

https://github.com/sebastianbergmann/phpunit/issues/1771

有一个未解决的问题

我现在 运行 phpunit 就像那样从输出中去除所有颜色:

php vendor/phpunit/phpunit/phpunit --coverage-text | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"

您只需设置 --colors=never,它们就会被禁用。它确实适用于先前在 xml 文件中启用的颜色(我刚刚测试过),试试看:

vendor/bin/phpunit --coverage-text --colors=never

所以我猜这个问题已经解决了:)