测程运行过程中,持续收集覆盖率数据,然后可以生成覆盖率报告

内部逻辑

1.报告路径准备

  1.1)平台服务器,创建报告路径:reports/{服务名}/{测程主键id}/{报告主键id}/

2.生成jacoco二进制文件

  2.1)在测试服务器,生成二进制文件  *.jacoco.exc

3.把二进制文件,copy到平台报告路径

4.拉取源码

  4.1)把被测代码分支的源码,clone到报告路径

5.生成报告

  5.1)全量覆盖率,直接用jacoco的报告

  5.2)增量覆盖率,用diff-cover插件

 

核心代码

1.生成二进制文件

覆盖率平台(5)- 生成覆盖率报告
    # 生成jacoco二进制覆盖率文件
    def dump_jacoco_file(self, reset_after_dump=False):
        cmd = '{}/bin/java -jar {}/jacoco/lib/jacococli.jar dump --destfile {}-test.jacoco.exec --address 127.0.0.1 --port {}'.format(
            self.java_home, settings.COVERAGE_HOME, os.path.join(self.service_dir, self.service_name), self.port)
        if reset_after_dump:
            cmd += ' --reset'
        linux = RemoteLinux(self.ip, self.user_name, self.pass_word)
        return linux.run_cmd(cmd)
View Code

相关文章: