【转】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中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

MySQL按时间维度对亿级数据表进行平滑分表

《MySQL按时间维度对亿级数据表进行平滑分表》本文将以一个真实的4亿数据表分表案例为基础,详细介绍如何在不影响线上业务的情况下,完成按时间维度分表的完整过程,感兴趣的小伙伴可以了解一下... 目录引言一、为什么我们需要分表1.1 单表数据量过大的问题1.2 分表方案选型二、分表前的准备工作2.1 数据评估

MySQL进行分片合并的实现步骤

《MySQL进行分片合并的实现步骤》分片合并是指在分布式数据库系统中,将不同分片上的查询结果进行整合,以获得完整的查询结果,下面就来具体介绍一下,感兴趣的可以了解一下... 目录环境准备项目依赖数据源配置分片上下文分片查询和合并代码实现1. 查询单条记录2. 跨分片查询和合并测试结论分片合并(Shardin

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

idea Maven Springboot多模块项目打包时90%的问题及解决方案

《ideaMavenSpringboot多模块项目打包时90%的问题及解决方案》:本文主要介绍ideaMavenSpringboot多模块项目打包时90%的问题及解决方案,具有很好的参考价值,... 目录1. 前言2. 问题3. 解决办法4. jar 包冲突总结1. 前言之所以写这篇文章是因为在使用Mav

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指

Nginx进行平滑升级的实战指南(不中断服务版本更新)

《Nginx进行平滑升级的实战指南(不中断服务版本更新)》Nginx的平滑升级(也称为热升级)是一种在不停止服务的情况下更新Nginx版本或添加模块的方法,这种升级方式确保了服务的高可用性,避免了因升... 目录一.下载并编译新版Nginx1.下载解压2.编译二.替换可执行文件,并平滑升级1.替换可执行文件

Win10安装Maven与环境变量配置过程

《Win10安装Maven与环境变量配置过程》本文介绍Maven的安装与配置方法,涵盖下载、环境变量设置、本地仓库及镜像配置,指导如何在IDEA中正确配置Maven,适用于Java及其他语言项目的构建... 目录Maven 是什么?一、下载二、安装三、配置环境四、验证测试五、配置本地仓库六、配置国内镜像地址

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON: