将单元测试覆盖率上传到 Codecov

发表于:2018-3-13 15:43

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:呜呜呜啦啦啦    来源:51Testing软件测试网采编

  配置 Jacoco
  ●配置 build.gradle 文件(以 SpringBoot 应用为例)
  buildscript {
  ext {
  springBootVersion = '1.5.8.RELEASE'
  }
  repositories {
  mavenCentral()
  maven { url "https://plugins.gradle.org/m2/" }
  maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
  }
  dependencies {
  classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
  classpath("gradle.plugin.com.gorylenko.gradle-git-properties:gradle-git-properties:1.4.17")
  }
  }
  apply plugin: 'java'
  apply plugin: 'eclipse-wtp'
  apply plugin: 'org.springframework.boot'
  apply plugin: 'war'
  // 使用 Jacoco 插件
  apply plugin: 'jacoco'
  group = 'cn.com.hellowood'
  version = '0.0.1-SNAPSHOT'
  sourceCompatibility = 1.8
  repositories {
  mavenCentral()
  }
  war {
  baseName = 'Security'
  version = ''
  }
  dependencies {
  compile('org.springframework.boot:spring-boot-starter-security')
  compile('org.springframework.boot:spring-boot-starter-web')
  compile("org.springframework.boot:spring-boot-devtools")
  compile('org.mybatis.spring.boot:mybatis-spring-boot-starter:1.3.0')
  compile('org.springframework.boot:spring-boot-starter-thymeleaf')
  compile('org.webjars:jquery:3.2.1')
  compile('org.webjars:bootstrap:4.0.0-beta.2')
  compile('org.webjars:font-awesome:4.7.0')
  compile('org.webjars:bootstrap-glyphicons:bdd2cbfba0')
  runtime('mysql:mysql-connector-java')
  runtime('org.springframework.boot:spring-boot-starter-tomcat')
  testCompile('org.springframework.boot:spring-boot-starter-test')
  testCompile('org.springframework.security:spring-security-test')
  }
  // 添加 task 用于生成 Jacoco 测试结果
  task codeCoverageReport(type: JacocoReport) {
  // 需指定生成的类文件位置和源文件位置
  classDirectories = files('build/classes')
  sourceDirectories = files('src/main/java')
  executionData fileTree(project.rootDir.absolutePath).include("**/build/jacoco/*.exec")
  subprojects.each {
  sourceSets it.sourceSets.main
  }
  // 生成的报告类型包括 xml/html/csv
  reports {
  xml.enabled true
  xml.destination "${buildDir}/reports/jacoco/report.xml"
  html.enabled false
  csv.enabled false
  }
  }
  codeCoverageReport.dependsOn {
  subprojects*.test
  }
  check.dependsOn codeCoverageReport
  生成测试报告
  gradle check
  gradle codeCoverageReport
  此时在 build/reports/jacoco 下生成 Jacoco 的测试报告
  上传测试结果
  通过命令直接上传(TOKEN 在 Codecov 项目中可以找到)
  bash <(curl -s https://codecov.io/bash) -t YOUR_PROJECT_TOKEN
  通过 Travis CI 上传(在 Travis 配置文件中添加以下内容)
  script:
  - ./gradlew check
  - ./gradlew codeCoverageReport
  after_success:
  - codecov
  - bash <(curl -s https://codecov.io/bash) -t YOUR_PROJECT_TOKEN
  通过 Circle CI 上传(在 Circle 配置文件中添加以下内容)
  jobs:
  build:
  steps:
  - run: gradle check
  - run: gradle codeCoverageReport
  - run: bash <(curl -s https://codecov.io/bash) -t 92b3ad6b-92f7-49bb-94e7-ea233b860e47
  需要注意的是只有 xml 格式的测试报告才会被上传


上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号