maven本身没有单元测试框架,但是maven的default生命周期的test阶段绑定了maven-surefire-plugin插件,该插件可以调用Junit3、Junit4、TestNG等Java流行测试框架完成单元测试。
在pom中加入Junit依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
- 1
- 2
- 3
- 4
- 5
约定优于配置
maven的default生命周期的test阶段与maven-surefire-plugin插件的test插件目标内置绑定。默认情况下,maven-surefire-plugin的test目标会自动执行测试源码路径(默认:src/test/java)下的所有符合一组命名规则的测试类。该命名规则如下:
1. **/Test*.java 任何子目录下所有命名以Test开头的java类
2. **/*Test.java 任何子目录下所有命名以Test结尾的java类
3. **/*TestCase.java 任何子目录下所有命名以TestCase结尾的java类
- 1
- 2
- 3
跳过测试
pom中配置
- skipTests配置,跳过测试执行阶段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- skip配置,跳过测试执行阶段
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
mvn命令行中加入参数
- skipTests
mvn clean package -DskipTests=true
- 1
- maven.test.skip(需要注意的是,maven-compiler-plugin插件的testCompile插件目标和maven-resources-plugin插件的testResources插件目标也有这个参数,如果使用-Dmaven.skip.test=true,则跳过了测试资源文件处理、测试代码编译和执行三个阶段。关于maven的生命周期和插件的详细描述,请参考我的另两篇博客:maven生命周期详解和Maven插件详解)
mvn clean package -Dmaven.test.skip=true
- 1
说明:此处的“maven.test.skip”为maven-surefire-plugin插件的test插件目标的参数的表达式,其对应的插件目标参数为上面pom中配置的skip参数。并不是所有插件目标参数都有表达式,也就是说,一些插件目标参数只能在pom中配置。关于插件目标参数和其表达式的详细信息,可以去maven官网的对应插件章查询,地址为:maven官网插件。maven-surefire-plugin中skip的描述如下所示(请放大查看☺):
跳过测试命令执行情况请参考我的另一篇博客:maven跳过单元测试的两个参数区别
动态指定要执行的测试用例
使用test参数可以在命令行指定要执行的测试用例的类名。
1. mvn test -Dtest=demomavenTest 指定单个测试执行类
2. mvn test -Dtest=demo*Test 指定所有以demo开头以Test结尾的测试类
3. mvn test -Dtest=demo*Test, heheTest 以逗号隔开多个指定的测试类
- 1
- 2
- 3
注意:当test参数没有值时,默认构建会失败。此时加上failIfNoTests=false,即使没有测试也不报错:
mvn test -Dtest -DfailIfNoTests=false
- 1
上述命令不会执行任何测试,构建也能顺利完成。这也是一种跳过所有测试完成构建的方法。
包含与排除测试用例
pom中可以配置includes和excludes参数来包含和排除指定的测试类:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.5</version>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
<excludes>
<exclude>**/*ServiceTest.java</exclude>
<exclude>**/ServiceTest*.java</exclude>
</excludes>
</configuration>
</plugin>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
(本文是
相关推荐
Maven使用`s surefire-plugin`插件来执行Java应用程序的单元测试,这个插件提供了丰富的配置选项来控制测试的执行方式。 ### 跳过测试类的打包配置 假设我们的目标是在构建过程中完全跳过所有测试类的执行,可以...
4. **测试**:Maven的surefire插件可以帮助执行单元测试。 5. **部署**:使用Maven的deploy插件,可以将构建好的应用部署到远程服务器。 6. **持续集成**:Maven与Jenkins、Git等工具配合,可以实现自动化构建和...
总结来说,JaCoCo与Maven的结合使得单元测试覆盖率的评估变得简单,而与TestNG的配合则让测试更加高效。这对于持续集成和持续交付流程中的质量保证至关重要。通过合理的配置和使用,开发者可以更好地理解和优化其...
例如,`mvn compile`命令会编译源代码,`mvn test`则会执行单元测试,而`mvn package`会打包应用为可部署的格式,如JAR或WAR。此外,Maven还支持多种插件,如Spring Boot Maven插件,可以简化Spring Boot应用的构建...
例如,default阶段中的compile目标负责编译源代码,test目标执行单元测试,install目标将项目安装到本地仓库,deploy目标则将最终的工件部署到远程仓库。 **6. Maven插件** Maven通过插件扩展其功能,每个插件都有...
3. **运行测试**:使用`mvn test`命令,Maven会在`src/test/java`下执行单元测试。 4. **打包项目**:执行`mvn package`,Maven会将编译后的代码打包成JAR或WAR文件。 5. **部署项目**:通过`mvn deploy`命令,可以...
- 执行测试:运行`mvn test`,Maven将执行项目中的单元测试。 - 打包项目:使用`mvn package`,Maven会生成JAR或WAR文件。 - 安装到本地仓库:`mvn install`将项目及其依赖安装到本地仓库,便于其他项目引用。 - ...
当Maven执行到某个阶段时,会自动调用绑定在这个阶段上的插件目标来完成相应的任务。例如,在`compile`阶段,Maven会调用`maven-compiler-plugin`的`compile`目标来编译源代码;在`test`阶段,则会调用`maven-...
- 插件(Plugins):执行生命周期中特定任务的组件,如JAR插件负责打包Java项目,Surefire插件负责运行单元测试。 使用Maven,开发者只需在POM.xml中声明项目依赖,Maven会自动下载并管理这些依赖,避免了版本冲突...
5. **执行构建**:通过`mvn clean compile`命令清理并编译项目,`mvn test`运行单元测试,`mvn package`打包应用。 ** Maven的常用命令 ** - `mvn clean`:清除上一次构建生成的目标文件。 - `mvn compile`:编译...
插件是Maven功能的扩展,例如maven-compiler-plugin用于编译源代码,maven-surefire-plugin用于运行单元测试。通过在pom.xml中配置插件,开发者可以自定义构建过程,实现各种复杂的需求。 除了基本功能外,Maven还...
2. **构建项目**: `mvn compile`用于编译源代码,`mvn test`执行单元测试,`mvn package`打包项目,`mvn install`将打包好的文件安装到本地仓库。 3. **清理项目**: `mvn clean`命令可以清理构建产生的临时和输出...
每个阶段都可以通过特定的插件来执行,例如,`maven-compiler-plugin`用于编译源代码,`maven-surefire-plugin`负责运行单元测试。Maven通过使用Project Object Model (POM)文件来描述项目信息,包括依赖、构建配置...
测试阶段执行单元测试,如果需要跳过测试,可以设置`-Dmaven.test.skip=true`。打包阶段会将处理后的class文件和资源打包成JAR。 Maven的传递性依赖意味着当项目依赖A,而A又依赖B时,引入A会自动引入B。如果需要...
- `mvn test`:运行项目的单元测试。 - `mvn package`:打包项目,如生成 JAR 或 WAR 文件。 - `mvn install`:将打包好的文件安装到本地仓库,供其他项目使用。 - `mvn deploy`:将最终的制品部署到远程仓库。 ** ...
例如,maven-compiler-plugin用于编译Java源代码,maven-surefire-plugin负责执行单元测试。 **五、Maven Archetypes** Maven Archetypes 是预定义的项目模板,可以快速生成符合约定的新项目结构。例如,`mvn ...
- `mvn test`: 运行单元测试。 - `mvn package`: 打包项目,如生成JAR或WAR文件。 - `mvn install`: 将打包好的文件安装到本地仓库,供其他项目引用。 - `mvn deploy`: 将最终制品部署到远程仓库。 ** 总结 ** ...
* test:执行单元测试 * package:打包项目 * install:安装项目到本地仓库 Maven 项目的生命周期 Maven 项目的生命周期包括三个阶段:clean 生命周期、default 生命周期、site 生命周期。每个生命周期都可以独立执行...
`maven执行的测试命令.txt`可能包含了运行项目测试的具体命令,例如: ``` mvn test ``` 这条命令会执行项目中的单元测试,并生成测试报告。 ### 总结 Maven作为Java开发的重要工具,简化了项目的构建和管理流程。...
4. **测试**:使用`mvn test`命令执行单元测试。 5. **打包**:使用`mvn package`命令将项目打包成可部署的格式,如JAR或WAR。 6. **部署**:使用`mvn deploy`命令将打包好的文件发布到远程仓库。 ** Maven的生命...