查看测试代码覆盖率
hardhat提供了一个查看当前我们编写的测试代码的功能覆盖率的插件,叫做solidity-coverage
,专门用于可靠性测试的代码覆盖率。
下载
- 用npm下载coverage
yarn add solidity-coverage --dev
配置
- 需要把插件引用hardhat.confing.js中
require('solidity-coverage')
执行和结果查看
- 在hardhat的示例程序中执行:
npx hardhat coverage --testfilestest/*.js
-
会看到我们测试通过的消息,下面的表格也有具体的通过率,大家会看到各个参数的通过率为100%,而且最后一列没有检测到的代码行为空,所以这是个全覆盖的测试。
-
在当前目录下面你会看到一个coverage目录和coverage.json文件,通过coverage目录下面的index.html能更加清楚的查看我们这次测试的详细内容。
-
现在我们去修改一下test目录下面的sample-test.js文件
cd ./test/sample-test.js
把下面几行给注释掉,然后我们再运行coverage试试
回到项目跟目录运行
npx hardhat coverage --testfiles test/*.js
- 大家清楚的看到我们的测试覆盖率降低了,而且右边还具体标明了是Greeter.sol中的哪一行代码没有被测试。
页面版报告查看
- 大家也许会主要到,我们运行coverage的时候会生成coverage目录,和一个coverage.json文件,我们去coverage目录下面会发现一个index.html,它便是一个页面化的测试报告,当项目很大的时候,使用index.html查看会比这个表格更加清晰。
-
点击合约名称,能查看这个合约具体是哪一行代码没有被测试到(19-20行,刚好是被我们注释掉的setGreeting方法)
插件地址:https://www.npmjs.com/package/solidity-coverage
希望这个插件能帮助到你
对文章满意的话欢迎点赞收藏,哈哈,谢谢你