Home | 简体中文 | 繁体中文 | 杂文 | 知乎专栏 | Github | OSChina 博客 | 云社区 | 云栖社区 | Facebook | Linkedin | 视频教程 | 打赏(Donations) | About
知乎专栏多维度架构

32.2. Gradle

https://docs.gradle.org/current/userguide/jacoco_plugin.html

plugins 中加入 id 'jacoco'

		
/*
 * This file was generated by the Gradle 'init' task.
 *
 * This generated file contains a sample Java Library project to get you started.
 * For more details take a look at the Java Libraries chapter in the Gradle
 * user guide available at https://docs.gradle.org/5.0/userguide/java_library_plugin.html
 */

plugins {
    // Apply the java-library plugin to add support for Java Library
    id 'java-library'
    // id 'java'
    id 'eclipse' // optional (to generate Eclipse project files)
	id 'idea' // optional (to generate IntelliJ IDEA project files)
	id 'jacoco'
}

repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
    //mavenCentral()
}

dependencies {
    
    testCompile('org.junit.jupiter:junit-jupiter-api:5.3.2')
	testCompile('org.junit.jupiter:junit-jupiter-params:5.3.2')
	testRuntime('org.junit.jupiter:junit-jupiter-engine:5.3.2')
	
	testCompile 'io.rest-assured:rest-assured:3.2.0'
	testCompile 'io.rest-assured:json-schema-validator:3.2.0'
	compile 'io.rest-assured:rest-assured:3.2.0'
	compile 'io.rest-assured:json-path:3.2.0'
	compile 'io.rest-assured:xml-path:3.2.0'
	
}

test {
	useJUnitPlatform()
	testLogging {
		events "passed", "skipped", "failed"
	}
}		
		
		

运行 gradlew build jacocoTestReport 生成测试报告

		
neo@MacBook-Pro ~/workspace/junit5 % ./gradlew build jacocoTestReport

BUILD SUCCESSFUL in 5s
6 actionable tasks: 2 executed, 4 up-to-date
neo@MacBook-Pro ~/workspace/junit5 % find build/reports/jacoco
build/reports/jacoco
build/reports/jacoco/test
build/reports/jacoco/test/html
build/reports/jacoco/test/html/index.html
build/reports/jacoco/test/html/jacoco-sessions.html
build/reports/jacoco/test/html/jacoco-resources
build/reports/jacoco/test/html/jacoco-resources/branchnc.gif
build/reports/jacoco/test/html/jacoco-resources/sort.js
build/reports/jacoco/test/html/jacoco-resources/greenbar.gif
build/reports/jacoco/test/html/jacoco-resources/sort.gif
build/reports/jacoco/test/html/jacoco-resources/source.gif
build/reports/jacoco/test/html/jacoco-resources/report.gif
build/reports/jacoco/test/html/jacoco-resources/prettify.js
build/reports/jacoco/test/html/jacoco-resources/branchpc.gif
build/reports/jacoco/test/html/jacoco-resources/branchfc.gif
build/reports/jacoco/test/html/jacoco-resources/class.gif
build/reports/jacoco/test/html/jacoco-resources/prettify.css
build/reports/jacoco/test/html/jacoco-resources/report.css
build/reports/jacoco/test/html/jacoco-resources/group.gif
build/reports/jacoco/test/html/jacoco-resources/package.gif
build/reports/jacoco/test/html/jacoco-resources/redbar.gif
build/reports/jacoco/test/html/jacoco-resources/up.gif
build/reports/jacoco/test/html/jacoco-resources/session.gif
build/reports/jacoco/test/html/jacoco-resources/down.gif
build/reports/jacoco/test/html/jacoco-resources/method.gif
build/reports/jacoco/test/html/jacoco-resources/bundle.gif
build/reports/jacoco/test/html/net.coding.api.task
build/reports/jacoco/test/html/net.coding.api.task/Task.java.html
build/reports/jacoco/test/html/net.coding.api.task/index.source.html
build/reports/jacoco/test/html/net.coding.api.task/index.html
build/reports/jacoco/test/html/net.coding.api.task/Task.html
build/reports/jacoco/test/html/junit5
build/reports/jacoco/test/html/junit5/Library.java.html
build/reports/jacoco/test/html/junit5/index.source.html
build/reports/jacoco/test/html/junit5/index.html
build/reports/jacoco/test/html/junit5/UnitTest.java.html
build/reports/jacoco/test/html/junit5/Library.html
build/reports/jacoco/test/html/junit5/UnitTest.html
build/reports/jacoco/test/html/junit5/Config.html
build/reports/jacoco/test/html/junit5/Config.java.html
build/reports/jacoco/test/html/com.example.project
build/reports/jacoco/test/html/com.example.project/index.source.html
build/reports/jacoco/test/html/com.example.project/index.html
build/reports/jacoco/test/html/com.example.project/Calculator.java.html
build/reports/jacoco/test/html/com.example.project/Calculator.html
		
		

如果你希望自动执行,不需要携带 jacocoTestReport 任务,添加下面代码到 build.gradle 文件最下面

		
test.finalizedBy(project.tasks.jacocoTestReport)		
		
		

排除 class

		
jacocoTestReport {
  afterEvaluate {
    classDirectories = files(classDirectories.files.collect {
      fileTree(dir: it, exclude: [
        'io/reflectoring/coverage/ignored/**',
        'io/reflectoring/coverage/part/**'
      ])
    })
  }
}