Maven 单元测试 & 集成Jacoco & 常见问题及解决办法

文章目录

    • 1.Maven添加Jacoco插件
    • 2. 命令行执行,不添加插件,易于jenkens等集成
    • 3. Maven添加maven-surefire-plugin插件,可区分集成测试或单元测试
    • 4. 常见问题
      • 4.1 问题一:无法生成报告(.exec)
    • 5. 参考文档

1.Maven添加Jacoco插件

  • 直接上代码
<plugin>
	<groupId>org.jacocogroupId>
	<artifactId>jacoco-maven-pluginartifactId>
	<version>0.8.8version>
	<executions>
		<execution>
			<id>default-prepare-agentid><goals><goal>prepare-agentgoal>goals>
		execution>
		<execution>
			<id>default-reportid><goals><goal>reportgoal>goals>
		execution>
		
	executions>
plugin>

进入项目目录:执行mvn test 命令即可生成jacoco.exec,默认地址当前项目的target目录下

mvn test -Dmaven.test.skip=false

更详细参数参考

  1. 官网

2. 命令行执行,不添加插件,易于jenkens等集成

注:但到4.1问题时,还是无法解决

# 生成 jacoco.exec
mvn org.jacoco:jacoco-maven-plugin:0.8.8:prepare-agent clean test -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true

# 如果只生成.exec文件,没有生成文件夹,执行以下命令,依赖于上一步的 jacoco.exec
# 默认目录:target/site/jacoco
mvn org.jacoco:jacoco-maven-plugin:0.8.8:report

3. Maven添加maven-surefire-plugin插件,可区分集成测试或单元测试

用于区分单元测试与集成测试

  • 还是直接上代码
<plugin>
    <groupId>org.apache.maven.pluginsgroupId>
    <artifactId>maven-surefire-pluginartifactId>
    <version>3.0.0-M5version>
    <configuration>
        <testFailureIgnore>truetestFailureIgnore>
        <includes>
            <include>*/*_UT.javainclude>
        includes>
        <excludes>
            <exclude>*/*Test.javaexclude>
        excludes>
        
        <argLine>${argLine} -Xmx2048margLine>
    configuration>
plugin>

4. 常见问题

4.1 问题一:无法生成报告(.exec)

  • 报错信息
 Skipping JaCoCo execution due to missing executi on data file.
  • 解决办法
    • 修改pom.xml文件,修改maven-surefire-plugin插件,添加如下:
${argLine} -Xmx2048m

5. 参考文档

  1. https://stackoverflow.com/

你可能感兴趣的:(maven,maven,单元测试,java)