codeclimate / php-test-reporter
PHP客户端,用于向Code Climate报告测试覆盖率
Requires
- php: ^5.3 || ^7.0
- ext-curl: *
- padraic/phar-updater: ^1.0
- psr/log: ^1.0
- satooshi/php-coveralls: ^1.0
- symfony/console: ^2.0 || ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.0.0
- phpunit/phpunit: ^4.8.31
This package is not auto-updated.
Last update: 2024-09-12 18:14:50 UTC
README
codeclimate-test-reporter - [已弃用]
以下配置说明针对的是现在已弃用的特定语言测试报告器。我们推荐使用新的统一测试报告器客户端。新的测试报告器更快速,以静态二进制文件形式发布,支持并行CI构建,并会持续得到我们团队的维护。现有的Ruby、Python、PHP和JavaScript测试报告器已弃用。
从您的PHP测试套件收集测试覆盖率数据并将其发送到Code Climate的托管自动代码审查服务。
Code Climate - https://codeclimate.com
重要:如果您遇到涉及SSL证书的错误,请参阅下方的已知问题:SSL证书错误部分。
重要提示
在众多不同的测试框架、设置和环境之间,存在许多变量。在设置测试覆盖率之前,了解我们目前支持和不支持的内容很重要。
-
单个有效负载:我们目前只支持每个提交的单个测试覆盖率有效负载。如果您分多步运行测试或通过并行测试运行,Code Climate只会处理我们接收到的第一个有效负载。如果您使用CI,请确保您正在并行模式下运行测试。
注意:此规则有一个例外。我们特别构建了一个与Solano Labs的集成,以支持并行测试。
注意:如果您已将Code Climate配置为分析同一存储库中的多种语言(例如,Ruby和JavaScript),我们仍然只能处理这些语言中的一种的测试覆盖率信息。我们将处理我们接收到的第一个有效负载。
-
无效文件路径:默认情况下,我们的测试报告器期望您的应用程序位于存储库的根目录。如果这不是这种情况,您的测试覆盖率有效负载中的文件路径将不会匹配Code Climate期望的文件路径。
需求
为了在您的系统上使用PHP测试报告器,您需要满足以下几个要求
测试报告器使用PHPUnit测试工具生成代码覆盖率信息。这些结果显示了您的应用程序代码中有多少是通过单元测试被执行的。然而,PHPUnit不能单独生成这些信息 - 它需要另一个工具,Xdebug。这并不是PHPUnit(或PHP)安装的一部分,因此您需要自行安装它。
Xdebug作为PHP的一个扩展而不是库来安装。您可以在项目的网站上找到有关通过PECL安装工具的更多信息。
如果您使用带有--coverage-clover
选项的PHPUnit测试并收到“Xdebug扩展未加载。不会生成代码覆盖率”的消息,您需要访问Xdebug网站并安装扩展。如果不这样做,您很可能会遇到类似以下错误
PHP Warning: simplexml_load_file(): I/O warning : failed to load external entity "[...]/build/logs/clover.xml" in [...]/vendor/satooshi/php-coveralls/src/Contrib/Bundle/CoverallsV1Bundle/Api/Jobs.php on line 52
安装
此包需要在Code Climate上创建一个用户,但不一定是付费账户,因此如果您还没有,第一步是前往: https://codeclimate.com。
通过Composer
要使用Composer安装php-test-reporter,请运行以下命令。
$ composer require codeclimate/php-test-reporter --dev
这将获取最新版本的报告器并安装它。如果您想要master分支,未标记的版本,可以使用以下命令
$ composer require codeclimate/php-test-reporter:@dev --dev
作为PHAR工具
在此处查看最新发布版,并用最新版本号替换X.X.X
。
$ RELEASE=X.X.X
$ wget -c "https://github.com/codeclimate/php-test-reporter/releases/download/$RELEASE/codeclimate-test-reporter.phar"
用法
- 将覆盖率数据生成到
build/logs/clover.xml
将以下内容添加到phpunit.xml.dist中
<?xml version="1.0" encoding="UTF-8"?> <phpunit ...> <logging> ... <log type="coverage-clover" target="build/logs/clover.xml"/> ... </logging> </phpunit>
或按以下方式调用phpunit
$ phpunit --coverage-clover build/logs/clover.xml
- 指定您的repo令牌作为环境变量,调用测试报告器
$ CODECLIMATE_REPO_TOKEN="..." vendor/bin/test-reporter # ... or via PHAR ... $ CODECLIMATE_REPO_TOKEN="..." codeclimate-test-reporter.phar upload
在您的Code Climate账户中添加您的repo后,通过点击“设置测试覆盖率”右侧的按钮,可以获得CODECLIMATE_REPO_TOKEN
值。
如果您在设置此过程中需要任何帮助,请联系 [email protected]。
故障排除
如果您在设置或使用我们的测试覆盖率功能时遇到问题,请参阅我们的详细帮助文档,该文档涵盖了遇到的最常见问题。
已知问题:SSL证书错误
如果您在尝试从CI服务器报告覆盖率数据时遇到涉及SSL证书的错误,可以通过手动使用curl
发布数据来解决这个问题
after_script: - CODECLIMATE_REPO_TOKEN="..." bin/test-reporter --stdout > codeclimate.json - "curl -X POST -d @codeclimate.json -H 'Content-Type: application/json' -H 'User-Agent: Code Climate (PHP Test Reporter v0.1.1)' https://codeclimate.com/test_reports"
注意:在上述命令中,您可能需要根据您项目的目录结构将bin/test-reporter
更改为vendor/bin/test-reporter
。
更多详情请参阅此问题。
贡献
欢迎在GitHub页面提交此项目的补丁、错误修复、功能请求和拉取请求
https://github.com/codeclimate/php-test-reporter
此包由Bryan Helmkamp维护([email protected])。
有关更多详细信息,请参阅CONTRIBUTING.md
。
版权
请参阅LICENSE.txt
实现的部分灵感来自php-coveralls项目。