我正在使用Jacoco插件来计算spring boot应用程序的代码覆盖率。 build.gradle中的Jacoco配置如下所示:
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['**/models/**',
'**/config/**',
'**/constants/**',
'**/Application.class'])
})
}
}
和
jacocoTestCoverageVerification {
violationRules {
rule {
element = 'PACKAGE'
excludes = ['some packages']
limit {
counter = 'BRANCH'
minimum = 0.7
}
}
}
}
当我从IntelliJ运行coverage时,它会显示正确的结果,但是当我使用gradlew clean buils
运行它时,它会失败,覆盖率为0.0。
我写了一个示例类,这里是jacoco报告快照 - 报告:类:我为SomeClass编写的测试是
public class SomeClassTest {
private SomeClass someClass;
@Before
public void setUp() throws Exception {
someClass = new SomeClass(12, 23);
}
@Test
public void shouldSumTwoValues() {
assertThat(someClass.sum()).isEqualTo(35);
}
}
有人可以帮我这个吗?
鉴于src/main/java/SomeClass.java
class SomeClass {
private Integer value1;
private Integer value2;
SomeClass(Integer value1, Integer value2) {
this.value1 = value1;
this.value2 = value2;
}
Integer sum() {
return value1 + value2;
}
}
src/test/java/SomeClassTest.java
import org.junit.*;
import static org.junit.Assert.*;
public class SomeClassTest {
private SomeClass someClass;
@Before
public void setUp() throws Exception {
someClass = new SomeClass(12, 23);
}
@Test
public void shouldSumTwoValues() {
assertEquals(35, (int) someClass.sum());
}
}
和build.gradle
apply plugin: "java"
apply plugin: "jacoco"
dependencies {
testCompile "junit:junit:4.12"
}
repositories {
mavenCentral()
}
执行gradle test jacocoTestReport
在build/reports/jacoco/test/html/index.html
发表以下报告
除了build.gradle
之外
jacocoTestReport {
reports {
xml.enabled false
csv.enabled false
html.destination file("${buildDir}/jacocoHtml")
}
afterEvaluate {
classDirectories = files(classDirectories.files.collect {
fileTree(dir: it,
exclude: ['**/models/**',
'**/config/**',
'**/constants/**',
'**/Application.class'])
})
}
}
jacocoTestCoverageVerification {
violationRules {
rule {
element = 'PACKAGE'
excludes = ['some packages']
limit {
counter = 'BRANCH'
minimum = 0.7
}
}
}
}
除了更改build/jacocoHtml
报告的目录外,不会更改结果/报告。