什么是覆盖率
覆盖率就是你的单元测试所测试的代码和你写的总代码的占比。
很多互联网公司要求项目达到一定的覆盖率,有些公司甚至要求覆盖率达到百分百,虽然覆盖率可以体现你的单元测试够不够完善,但是覆盖率并不是越高越好,一味的强求百分百覆盖率我们并不提倡,因为我们不可能把框架自带的功能也都写上对应的单元测试,首先它们是身经百战的,基本没什么问题,其次这个工作量是让人崩溃的,也会极大的延误你的工作效率,不过最好确保你的核心代码有着足够高的覆盖率。
覆盖率配置
我们在第二篇中介绍过phpunit.xml的配置,没错,覆盖率的配置也在这个文件中
<coverage processUncoveredFiles="true">
<include>
<!-- ./app--要覆盖的文件夹,suffix--要匹配的文件的后缀名 -->
<directory suffix=".php">./app</directory>
</include>
</coverage>
然后在运行的时候加上覆盖率参数 --coverage-html,reports为你的覆盖率报告存放的目录
phpunit --coverage-html=reports/
在laravel的根目录下推荐用框架phpunit组件运行
vendor\bin\phpunit --coverage-html=reports/
运行之后可以看到框架多了一个reports目录:
只需要在浏览器中打开index.html文件即可看到覆盖率分析报告:
可以看到app目录下的所有文件夹都被统计了进来,也可以点击每个目录查看具体文件的覆盖率: