【转】Maven进行测试Test

2024-09-02 07:18
文章标签 进行 maven test 测试

本文主要是介绍【转】Maven进行测试Test,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Maven进行测试Test

Maven测试

maven测试为 default 生命周期中的test阶段。 

test阶段与 maven-surefire-plugin 的test目标相绑定了, 这是一个内置的绑定。 

Maven通过插件来执行 JUnit 和 TestNG 的测试用例。

maven-surefire-plugin 的test目标会自动执行测试源码路径下符合命名模式的测试类。 

默认测试源代码路径: src/test/java/ 

测试类命名模式: 

**/Test*.java 

**/*Test.java 

**/*TestCase.java 

按上述模式命名的类, 使用 mvn test 命令就能自动运行他们。

跳过测试

下面命名跳过测试: 

mvn install -DskipTests 

也可以在POM文件中配置 maven-surefire-plugin

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-surefire-plugin</artifactId>

                <version>2.19.1</version>

                <configuration>

                    <skipTests>true</skipTests>

                    <!-- 

                      skip 对应命令行参数为 maven.test.skip 

                     -->

                    <skip>false</skip>

                </configuration>

            </plugin>

1

2

3

4

5

6

7

8

9

10

11

12

不推荐这种做法,会让项目长期跳过测试。

如果想不仅跳过测试运行,还跳过测试代码的编译,使用下面命令: 

mvn package -Dmaven.test.skip=true 

maven.test.skip 控制了 maven-compiler-plugin 和 maven-surefire-plugin 两个插件的行为。

Maven动态指定测试用例

maven-surefire-plugin 使用 test 参数指定测试用例, 为测试用例的类名 

mvn test -Dtest=RandomTest 

只执行 RandomTest 这个测试类. 

mvn test -Dtest=RandomTest#myTest 

上面命令,只运行 RandomTest 类的 myTest 方法

可以指定多个类,逗号分隔 

mvn test -Dtest=RandomTest,Random2Test 

也可以用 * 匹配多个 

mvn test -Dtest=Random*Test 

*和 逗号可以结合使用。

如果不指定或者找不到测试类则构建失败 

mvn test -Dtest 

failIfNoTests 参数控制没有测试用例不报错 

mvn test -Dtest -DfailIfNoTests=false

包含测试用例

将不符合命名模式测试类自动运行测试。 

修改POM文件

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-surefire-plugin</artifactId>

                <version>2.19.1</version>

                <configuration>

                    <includes>

                        <include>**/*Tests.java</include>

                    </includes>

                </configuration>

            </plugin>

1

2

3

4

5

6

7

8

9

10

两个星号 ** 表示匹配任意路径。 

上面表示匹配已 Tests.java 结尾的Java类。

排除测试用例

排除测试用例不实用test自动运行 

使用 excludes 节点

            <plugin>

                <groupId>org.apache.maven.plugins</groupId>

                <artifactId>maven-surefire-plugin</artifactId>

                <version>2.19.1</version>

                <configuration>

                    <excludes>

                        <exclude>**/*ServiceTest.java</exclude>

                    </excludes>

                </configuration>

            </plugin>

1

2

3

4

5

6

7

8

9

10

生成测试报告

测试报告默认生成 target/surefire-reports 目录下,生成 txt, 和 xml 格式的。

测试代码重用

mvn package 会打包项目主代码和资源文件代码,没有包含测试代码。 

如果想一起打包测试用例,供依赖方使用, 使用 maven-jar-plugin 插件

            <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>

1

2

3

4

5

6

7

8

9

10

11

12

maven-jar-plugin 有两个目标 jar ,test-jar, 

jar 内置绑定在 default 生命周期的 package 阶段。 

test-jar没有内置绑定。

依赖方引入时 dependency

        <dependency>

            <groupId>org.A</groupId>

            <artifactId>A</artifactId>

            <version>5.0.0</version>

            <type>test-jar</type>

            <scope>test</scope>

        </dependency>

1

2

3

4

5

6

7

需要设置 type 和 scope。

地址:Maven进行测试Test_yonggang7的专栏-CSDN博客_mvn test

这篇关于【转】Maven进行测试Test的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/1129351

相关文章

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

Linux使用scp进行远程目录文件复制的详细步骤和示例

《Linux使用scp进行远程目录文件复制的详细步骤和示例》在Linux系统中,scp(安全复制协议)是一个使用SSH(安全外壳协议)进行文件和目录安全传输的命令,它允许在远程主机之间复制文件和目录,... 目录1. 什么是scp?2. 语法3. 示例示例 1: 复制本地目录到远程主机示例 2: 复制远程主

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事

python多线程并发测试过程

《python多线程并发测试过程》:本文主要介绍python多线程并发测试过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、并发与并行?二、同步与异步的概念?三、线程与进程的区别?需求1:多线程执行不同任务需求2:多线程执行相同任务总结一、并发与并行?1、

Maven项目打包时添加本地Jar包的操作步骤

《Maven项目打包时添加本地Jar包的操作步骤》在Maven项目开发中,我们经常会遇到需要引入本地Jar包的场景,比如使用未发布到中央仓库的第三方库或者处理版本冲突的依赖项,本文将详细介绍如何通过M... 目录一、适用场景说明​二、核心操作命令​1. 命令格式解析​2. 实战案例演示​三、项目配置步骤​1