Jacoco和Intellij的代码覆盖范围不同

时间:2018-08-22 06:42:20

标签: java unit-testing gradle intellij-idea jacoco

我正在尝试将Jacoco集成到我的项目中。 我有一堂简单的课

package in.ashwanik.project;

import java.util.Objects;

public class ArithmeticOperations {

    public int add(Integer a, Integer b) {
        Objects.requireNonNull(a);
        Objects.requireNonNull(b);
        return a + b;
    }
}

以及相应的测试用例

package in.ashwanik.project;

import org.junit.Test;

public class ArithmeticOperationsTest {

    @Test(expected = NullPointerException.class)
    public void testAddA() {
        ArithmeticOperations entity = new ArithmeticOperations();
        entity.add(null, 1);
    }

    @Test(expected = NullPointerException.class)
    public void testAddB() {
        ArithmeticOperations entity = new ArithmeticOperations();
        entity.add(1, null);
    }
}

我故意遗漏了不传递空参数的测试用例。

用于运行Jacoco测试的命令。

./gradlew clean build test jacocoTestReport

当我在此项目上运行Jacoco时,代码覆盖率仅为40%。

enter image description here

但是,当我运行IntelliJ代码覆盖率时,我得到了75%

enter image description here

测试用例运行 enter image description here

我不确定为什么会出现这种差异吗?

我如何同时使用这两种工具?​​

0 个答案:

没有答案