`

07 使用Maven进行单元测试

阅读更多

一、maven-surefire-plugin简介
      maven-surefire-plugin支持JUnit和TestNG。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径下所有
以Test开头、Test或TestCase结尾的的Java类。

 

 

二、跳过测试
    如果想跳过测试阶段,可用:

mvn package -DskipTests

    想临时性跳过测试代码的编译,可用:

mvn package -Dmaven.test.skip=true

     maven.test.skip同时控制maven-compiler-plugin和maven-surefire-plugin两个插件的行为,即跳过编译,又跳过测试。

 

 

三、手动指定测试用例
    maven-surefire-plugin的test参数用来指定要运行的测试用例:

//指定测试类
mvn test -Dtest=RandomGeneratorTest
//以Random开头,Test结尾的测试类
mvn test -Dtest=Random*Test
//用逗号分隔指定多个测试用例
mvn test -Dtest=ATest,BTest

     test参数必须匹配至少一个测试类,否则会报错并导致构建失败。此时可使用:

 

mvn test -Dtest -DfailIfNoTests = false

 

来指定即使没有任何测试用例也不要报错。

 

 

 

 


四、包含与排除测试用例

<plugin>
    <groupId>org.apahce.maven.plugins<groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.5</version>
    <configuration>
	<includes>
	    <include>** / *Tests.java</include>
	</includes>
    </configuration>	
</plugin>

     使用** / * Test.java 来匹配所有以Tests结尾的Java类。两个星号**用来匹配任意路径,一个星号*用来获取除路径风格符外的0个或多个字符。还可使用excludes来排除一些测试类。

 

 

五、测试报告
1.基本的测试报告
     默认情况下,maven-surefire-plugin会在项目的target/surefire-reports目录
下生成两种格式的错误报告:

  •  简单文本格式 
  • 与JUnit兼容的XML格式

XML可用Eclipse的JUnit插件打开?

 

2.测试覆盖率报告
    Cobertura是一个用来测试覆盖率统计工具。Maven通过cobertura-maven-plugin
插件与之集成,命令如下:

mvn cobertura:cobertura

 

 

六、运行TestNG测试
    TestNG支持使用xml来配置要运行的测试用例。可用:

<configuration>
    <suiteXmlFiles>
	<suiteXmlFile>testing.xml</suiteXmlFile>
    </suiteXmlFiles>
</configuration>

   TestNG还支持测试组 

<configuration>
    <groups>util,medium</groups>
</configuration>

  

 

七、重用测试代码
    通过配置maven-jar-plugin将测试类打包

<plugin>
    <groupId>org.apahce.maven.plugins<groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.2</version>
    <executions>
        <execution>
	    <goals>
		<goal>test-jar</goal>
	    </goals>
	</execution>
    </executions>
</plugin>

 

    打包后可以声明依赖:

<groupId></groupId>
<artifactId></artifactId>
<version></version>
<type>test-jar</type>
<scope>test</scope>

 

分享到:
评论
1 楼 wenjinglian 2011-04-12  
哥们不错 

相关推荐

    maven项目,单元测试jacoco、junit

    maven项目,单元测试jacoco、junit...........................................................................................

    dubbo单元测试maven项目

    【标题】"dubbo单元测试maven项目"指的是在基于Maven构建的Java项目中,对采用Dubbo框架实现的服务进行单元测试的过程。Dubbo是一个高性能、轻量级的开源Java RPC框架,它提供了服务治理功能,包括服务注册、服务...

    jacoco单元测试覆盖率+maven DEMO

    【标题】:“jacoco单元测试覆盖率+maven DEMO”是一个示例项目,旨在演示如何使用JaCoCo工具和Maven构建工具来计算Java项目的单元测试覆盖率。JaCoCo是一款流行的开源代码覆盖率工具,它能够帮助开发者了解代码在...

    测试maven用到的资源

    其中,“测试”阶段主要对应于单元测试,Maven会自动查找项目中的src/test/java目录下的所有以Test结尾的类并运行其包含的测试方法。如果使用了JUnit,测试类的命名通常遵循@Test注解的约定。 除了单元测试,Maven...

    chm版本Maven教程

    使用Maven运行单元测试 将项目安装到Maven本地资源库 生成基于Maven的项目文档站点 使用“mvn site-deploy”部署站点(WebDAV例子) 部署基于Maven的war文件到Tomcat Eclipse创建一个Maven Web项目 在易百教程网...

    Maven跳过单元测试主要可以分为三种方法

    maven打包跳过test命令 命令行方式跳过测试 我们可以用两种命令来跳过测试 ...使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码的编译; 使用 mvn package -DskipTests 跳过单元测试,但是会继续编译。

    Maven跳过测试类打包

    Maven使用`s surefire-plugin`插件来执行Java应用程序的单元测试,这个插件提供了丰富的配置选项来控制测试的执行方式。 ### 跳过测试类的打包配置 假设我们的目标是在构建过程中完全跳过所有测试类的执行,可以...

    springboot的测试类的maven依赖

    例如,你可以创建一个名为`MyServiceTest`的测试类,使用`@Autowired`注解注入服务实例,然后使用Mockito模拟其他依赖,进行单元测试。 总之,正确配置Spring Boot测试类的Maven依赖,可以帮助开发者编写高效、全面...

    jacoco单元测试覆盖率+maven DEMO2

    **结合TestNG进行单元测试** TestNG是另一个常用的Java测试框架,它提供了更丰富的测试功能,如测试分组、依赖、并行测试等。将JaCoCo与TestNG结合,可以得到详细的测试覆盖率报告。在`pom.xml`中配置TestNG插件,...

    maven2 java项目管理 工具 测试 框架

    Maven 2 内置了支持JUnit和其他测试框架的机制,可以自动运行单元测试,并生成测试报告。`mvn test`命令即可执行测试,`mvn install`则会在测试成功后将项目打包并安装到本地仓库。 **7. 部署与发布** `mvn deploy`...

    jeecg3.8 maven版本开发测试

    测试环节,可以使用JUnit进行单元测试,验证单个函数或方法的正确性;对于接口和页面,可以利用MockMvc进行模拟请求测试;对于数据库操作,可以编写SQL查询验证数据的正确存储和读取。最后,通过Maven的deploy阶段,...

    idea使用maven创建web项目详细教程

    src/main/java 目录用于存放项目的 Java 文件,src/main/resources 目录用于存放项目资源文件,src/test/java 目录用于存放单元测试文件,target 目录用于存放编译后的 class 文件。 10. IDEA 中的 Maven 项目 在 ...

    maven使用文档,maven使用文档

    - **测试**:`mvn test`,执行项目的单元测试。 - **打包**:`mvn package`,将编译后的类文件打包成 JAR 文件或 WAR 文件等。 - **安装**:`mvn install`,将构建好的包安装到本地仓库。 - **站点生成**:`mvn ...

    Maven的简单使用以及Maven搭建SSH

    4. **测试与部署**:完成编码后,使用Maven进行单元测试和集成测试,最后通过`mvn package`打包成war文件,部署到应用服务器上。 ** Maven分模块搭建SSH ** 在大型项目中,通常采用模块化开发,以提高代码的可维护...

    系统单元测试规范-4:JAVA单元测试指引参照.pdf

    该规范涵盖了JAVA单元测试的指引,覆盖了测试的需求、测试颗粒化、测试自动化、持续维护等方面,并提供了Maven和Junit的使用指南,旨在帮助研发人员编写高质量的单元测试代码。 在软件开发中,测试是非常重要的一步...

    maven-ssm测试demo

    开发者通常会在命令行中执行`mvn clean compile`来清理旧的编译产物并进行新代码的编译,`mvn test`运行单元测试,`mvn package`则会将项目打包成可部署的形式,如JAR或WAR文件。 在实际开发中,Maven通过在`pom....

    用友NC框架中使用Junit单元测试小技巧

    通过以上介绍,我们可以看到,在用友NC框架中使用Junit进行单元测试不仅可以帮助我们更高效地进行代码测试,还能显著减少不必要的登录过程,大大节省了时间和精力。希望这些小技巧能够对您在实际开发过程中有所帮助...

    maven项目开发的maven3.3.9使用包

    4. **测试**:Maven的surefire插件可以帮助执行单元测试。 5. **部署**:使用Maven的deploy插件,可以将构建好的应用部署到远程服务器。 6. **持续集成**:Maven与Jenkins、Git等工具配合,可以实现自动化构建和...

    maven 简单使用教程

    - `mvn compile`仅编译源代码,`mvn test`执行单元测试,`mvn clean`清理生成的文件。 - 使用`mvn eclipse:eclipse`将项目转化为Eclipse工程。 - Web项目: - 创建Web项目的过程类似,但生成的项目结构会包含...

Global site tag (gtag.js) - Google Analytics