import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; @Slf4j public class AddTest { private static Add add=new Add(); @BeforeEach void setUp() { log.info("setUp"); @AfterEach void tearDown() { log.info("tearDown"); @Test void add() { int sum = add.add(1, 2); assertEquals(3, sum);

2、idea自带插件

注意: 测试的包名和开发的包名必须一致,否则会没有测试报告(报No coverage in ‘all classes in scope‘ in Intellij)。

执行Run 'AddTest' with Coverage

生成覆盖率

3、jacoco插件

pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.8.7</version>
            <configuration>
                <destFile>target/test-coverage/jacoco-unit.exec</destFile>
                <dataFile>target/test-coverage/jacoco-unit.exec</dataFile>
            </configuration>
            <executions>
                <execution>
                    <id>default-prepare-agent</id>
                    <goals>
                        <goal>prepare-agent</goal>
                    </goals>
                </execution>
                <execution>
                    <id>jacoco-site</id>
                    <phase>test</phase>
                    <goals>
                        <goal>report</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
mvn clean test -Dtest=com.jacoco.AddTest -Dmaven.test.failure.ignore=true verify

执行完成,在target/site/jacoco/index.html即可查看覆盖率图表。

通过JaCoCo记录 覆盖率 的核心是调用记录函数,重点是保证记录函数能被成功调用。所以,Instrument也好,Service也好,直接写在原来的Activity里也好,目的都是成功记录数据。没有通用的万能方法,还是得因地制宜。在复杂的项目环境下,还是需要对原生代码进行适当的打桩修改的。 IntelliJ 在业界被公认为最好的 Java 开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE 支持、各类版本工具(git、SVN 等)、JUnit、CVS 整合、代码分析、 创新的 GUI 设计等方面的功能可以说是超常的。通过上述例子可以看出,通过查看 覆盖率 ,逐步善 测试 用例,写出的用例至少能保障每个分支都被执行,相比通过需求写用例更能排查出潜在 bug。需求 ≠代码,不能仅围绕需求写用例,借助 JaCoCo 覆盖率 工具编写用例,更符合实际工作需求,更省心省力。自动弹出代码 覆盖率 界面。 单元测试 其实是检测代码最好的方式, 单元测试 ,代码质量,这些都是很好的工具, 单元测试 需要结合mockito框架进行mock来 测试 ,否则没用的数据写入到数据库里面也是占用空间,本身 测试 只是为了检查我的逻辑是否合理,流程是否通顺,判断是否到位。 测试 覆盖查看还是很方便的,只是你要把每种情况都要考虑到,提供对应的代码示例去执行对应的代码块。不得不说 idea 这个 测试 报告还是挺友好的对与那些 测试 人员可以直观的看到 测试 覆盖的结果,对于开发人员也非常友好,直接看到那些代码覆盖到没有覆盖到。 TestMe 是一个可以帮助您快速达成 单元测试 覆盖率 指标的 IDEA 插件。 它可以帮助您自动生成 测试 用例,从而确保您的代码 覆盖率 达到所需的 覆盖率 。请注意,TestMe 插件只是一个辅助工具,它可以帮助您自动生成 测试 用例,但 单元测试 的质量和 覆盖率 的可靠性仍然取决于您的代码质量和 测试 用例的设计。因此,在使用 TestMe 的同时,请确保生成的 测试 用例能够真正地 测试 您的代码,并持续改进您的 单元测试 实践。为了使用 IDEA 的 TestMe 插件,您可以按照以下步骤进行操作,以下是使用 TestMe 插件的简要介 将maven surefire plugin 配置到pom文件中,加上version信息,此时执行mvn clean test命令可以发现JUnit5 测试 文件。mvn的 测试 报告默认使用 测试 名,在某些场景下需要用DisplayName来展示 测试 结果,同样需要配置,具体链接。此时执行mvn clean test之后可以在target/site目录下发现 测试 报告,但是是未经过渲染的。但是当有 测试 失败时,mvn插件不会生成 测试 报告,此时需要配置,表示有错误 测试 时仍然生成 测试 报告。 代码覆盖(Code coverage)是软件 测试 中的一种度量,描述程序中源代码被 测试 的比例和程度,所得比例称为代码 覆盖率 。简单来理解,就是 单元测试 中代码执行量与代码总量之间的比率。 Idea 单元测试 覆盖率 创建接口 参加 测试 类 点击Run ‘xxx’ with Coverage 在运行完毕后.就会出现Coverage窗口,在窗口中就能看到关于 覆盖率 的内容 如果需要达到更高的 覆盖率 ,将if的每一个分支都 测试 一遍.