以下是我使用 Codeception(GitHub 上的项目)进行远程代码覆盖的配置。
运行远程代码封面收集的步骤
1. 确保 xdebug 已安装并启用。
2. 配置代码接收。
文件(GitHub):codeception.yml
coverage:
enabled: true
c3_url: 'http://%SERVICE_HOST%/index-test.php/'
include:
- web/*
- config/*
- src/*
3. 为您需要的西装启用覆盖范围。
文件(GitHub):acceptance.suite.yml
coverage:
remote: true
在我的示例中,它仅用于验收测试。
4. 在应用程序引导程序中包含 c3.php
文件。
应用程序引导程序文件 (GitHub):index-test.php
// Start the remote code coverage collection.
require_once __DIR__.'/../c3.php';
// autoloader, application running and etc
// ...
5. 运行覆盖率。
$ vendor/bin/codecept run --coverage --coverage-html
默认情况下,您可以在目录中找到报告。tests/_output
可能出现的问题
1. 输出目录不可写(测试/_output
)。
$ chmod 777 tests/_output
2. 控制台中未打印的远程代码封存。
不应打印。从文档中:
coverage:
remote: true
在这种情况下,如果启用了此选项,远程代码覆盖率结果将不会与本地结果合并。只有在远程文件和本地文件具有相同的路径时,才可以进行合并。但是,如果在远程服务器上运行测试,我们不确定。
3.其他一些错误。
尝试启用调试。如果启用了调试,则可以获取报表或清除报表。
curl -o codecoverage.tar "http://localhost:8080/index-test.php/c3/report/html"
结束
有时这不是一项微不足道的任务。所以我希望这会有所帮助!