【转】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

相关文章

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意

Java进行文件格式校验的方案详解

《Java进行文件格式校验的方案详解》这篇文章主要为大家详细介绍了Java中进行文件格式校验的相关方案,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、背景异常现象原因排查用户的无心之过二、解决方案Magandroidic Number判断主流检测库对比Tika的使用区分zip

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

一文教你如何将maven项目转成web项目

《一文教你如何将maven项目转成web项目》在软件开发过程中,有时我们需要将一个普通的Maven项目转换为Web项目,以便能够部署到Web容器中运行,本文将详细介绍如何通过简单的步骤完成这一转换过程... 目录准备工作步骤一:修改​​pom.XML​​1.1 添加​​packaging​​标签1.2 添加

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

Jackson库进行JSON 序列化时遇到了无限递归(Infinite Recursion)的问题及解决方案

《Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursion)的问题及解决方案》使用Jackson库进行JSON序列化时遇到了无限递归(InfiniteRecursi... 目录解决方案‌1. 使用 @jsonIgnore 忽略一个方向的引用2. 使用 @JsonManagedR