使用maven进行测试

maven-surefire-plugin

maven的构建深的生命周期的各个阶段的具体工作都是通过插件来实现的,测试也不例外,maven-surefire-plugin就是maven测试阶段默认绑定的插件。

maven-surefire-plugin默认会执行测试源码路径(src/test/java)下符合如下一组命名模式的测试类:

  • **/Test*.java : 任何子目录下以Test开头的java类
  • **/*Test.java:任何子目录下以Test结尾的java类
  • **/*TestCase.java:任何子目录下以TestCase.java结尾的java类

 当然该插件也支持自定义的测试类的命名模式。

跳过测试

跳过测试有两种方式:

1.skipTests : mvn package -DskipTests,编译测试类至target/classes下,不执行测试用例。

通过配置也可以实现:

2.maven.test.skip: mvn package -Dmaven.test.skip=ture , 不编译源码也不执行测试用例

配置实现的方式:

动态指令指定要运行的测试用例

    maven-surefire-plugin,提供了 一个test参数让用户通过命令行输入命令来指定要运行的测试用例。

mvn test -Dtest=ATest,BTest,C*Test  

    maven-surefire-plugin 还提供了一个-DfailIfNoTest = false的参数让maven在没有测试类匹配的时候也不要报错,这也是另外一种跳过测试的方式

包含与排除测试用例

1、包含不符合默认类名模式的测试用例

2、排除一些符合默认命名模式的测试类

测试报告

1、基本的测试报告

maven-surefire-plugin 会在target/surefire-reports目录下生成两种格式的错误报告

  • 简单文本格式
  • 与Junit兼容的xml的格式

2、测试覆盖率报告

 覆盖率测试报告是通过cobertura这个工具来实现的,使用方式:

maven cobertura:cobertura 

然后打开目录 target/site/cobertura下的index.html文件就可以看到相关的测试覆盖率的测试报告

重用测试代码

我们有可能用到其他模块的的测试代码,那么我们就需要将重用的测试类打包:

<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.4</version>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

让后再通过配置依赖,将包引入:

注意type为:test-jar

猜你喜欢

转载自my.oschina.net/u/2464465/blog/1603901