禁用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有一个开放的问题

你可以设置--colors=never,它们将被禁用。它确实适用于以前在xml文件中启用的颜色(我刚刚测试过),试试它:

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

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

我现在像这样运行phpunit以从输出中剥离所有颜色:

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