maven+jacoco java 代码测试覆盖率

maven工程

pom.xml


	4.0.0
	com.jacoco.tutorial
	jacoco-demo
	0.0.1-SNAPSHOT

	
		
			junit
			junit
			4.12
			test
		
	
	
		

			
				org.apache.maven.plugins
				maven-surefire-plugin
				
					true
					
					
					
					
						**/*Test.java
						
						
					
				
			

			
				org.jacoco
				jacoco-maven-plugin
				0.8.1
				
					
					
						com/jacoco/tutorial/Calculator*
					
					${project.build.directory}/coverage-reports/jacoco-unit.exec
					${project.build.directory}/coverage-reports/jacoco-unit.exec
				
				
					
						jacoco-initialize
						
							prepare-agent
						
					
					
						jacoco-site
						test
						
							report
						
					
				
			


		
	

说明:
1.如果不限制跑哪些测试用例,其中的 maven-surefire-plugin可以注释掉。

2.可以删除。

 

java代码

package com.jacoco.tutorial;

public class Calculator {
 
	public int add(int a, int b) {
		return a + b;
	}
 
	public int sub(int a, int b) {
		return a - b;
	}
}

 

package com.jacoco.tutorial;
 
import org.junit.Assert;
import org.junit.Test;
 
public class CalculatorTest {
 
	private Calculator instance = new Calculator();
 
	@Test
	public void testAdd() {
		int a = 10;
		int b = 20;
		int expected = 30;
		Assert.assertEquals(expected, instance.add(a, b));
	}
 
	@Test
	public void testSub() {
		int a = 10;
		int b = 20;
		int expected = -10;
		Assert.assertEquals(expected, instance.sub(a, b));
	}
}

生成覆盖率报告:
    run as>mvn test
报告首页位置:
    默认在 
    \target\site\jacoco\index.html

结果

maven+jacoco java 代码测试覆盖率_第1张图片

maven+jacoco java 代码测试覆盖率_第2张图片

maven+jacoco java 代码测试覆盖率_第3张图片

可以通过outputDirectory(具体位置参考如下)修改下默认位置:

			
				jacoco-maven-plugin
				
						
							target/jacoco-ut
						
					
				
			

 

生成测试用例的测试报告,在pom.xml所在的目录执行:
    mvn test surefire-report:report
位置在:
    /target/site/surefire-report.html

结果:

maven+jacoco java 代码测试覆盖率_第4张图片

 

更专业的文章:

http://www.51testing.com/html/11/n-3726211.html

提到 实时插桩模式(on-the-fly)、离线插桩(offline instrumentation) ,jacoco应该可以实现实时监控测试人员人工测试后的覆盖率。

 

 

你可能感兴趣的:(maven+jacoco java 代码测试覆盖率)