LibCoverage, PHP 库的代码全覆盖测试辅助工具
https://github.com/dvaknheo/libcoverage
https://gitee.com/dvaknheo/libcoverage
解决的问题:写 php 库的时候让 PHP 代码全覆盖测试
使用方法:
composer require --dev dvaknheo/libcoverage ## 安装 composer exec libcoverage # 查看帮助 composer exec libcoverage setup # 安装 phpunit # phpunit 单元测试 cat test_reports/index.html # 查看报告,你可以用浏览器打开 # composer exec libcoverage cloze # 新增了类,添加测试模板运行这个 # phpunit tests/AppTest.php && phpunit tests/support.php # 某类的猜测类变更,重新生成 # composer exec libcoverage report # 备用生成报告,phpunit 的时候已经就有了。
作用: 运行完 phpunit 就能开浏览器里打开看到华丽的全覆盖测试的报告了。
看自己写的库有哪些不爽的,挨个做到 100% 覆盖.
我的环境是 wsl, php 7.3,phpunit 9.2.0 // 不是 phpunit 9.3 版哦
LibCoverage 这个项目覆盖是自举 的。 你 clone 下来跑 phpunit 就是。
例如有个项目 src/App.php (带 composer.json 这就不说了。)
<?php namespace MyProject; class App { public function foo() { var_dump(DATE(DATE_ATOM)); } }
composer exec libcoverage setup 生成的 AppTest.php
<?php namespace testsMyProject; use MyProjectApp; use LibCoverageLibCoverage; class AppTest extends PHPUnitFrameworkTestCase { public function testAll() { LibCoverage::Begin(App::class); /* // App::G()->foo(); //*/ LibCoverage::End(); } }
你会看到的报告是 0% .
把中间注释部分打开,再跑 phpunit 就是 100% 了。