集成测试,单元测试隔离 maven-surefire-plugin

这篇具有很好参考价值的文章主要介绍了集成测试,单元测试隔离 maven-surefire-plugin。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

maven的goal生命周期

Maven生存周期 - 含 integration-test

Maven本身支持的命令(Goals)是有顺序的,越后面执行的命令,会将其前面的命令和其本身按顺序执行一遍,具体的顺序如下所示:

validate
initialize
generate-sources
process-sources
generate-resources
process-resources
compile
process-classes
generate-test-sources
process-test-sources
generate-test-resources
process-test-resources
test-compile
process-test-classes
test
prepare-package
package
pre-integration-test
integration-test
post-integration-test
verify
install

从上面maven的生存期可以看出



作者:哈比猪
链接:https://www.jianshu.com/p/e638d64b6955/
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

maven单元测试与集成测试

  1. 通过maven的Profile
  2. 配置生命周期 通过maven-surefire-plugin的生命周期配置不同的测试范围

如下使用的是方式2

unit包中包含的是单元测试

integration包种包含的是集成测试

<plugin>

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

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

                <version>2.9</version>

                <configuration>

                    <skip>true</skip>

                </configuration>

                <executions>

                    <execution>

                        <id>run-integration-test</id>

                        <phase>integration-test</phase>

                        <goals>

                            <goal>test</goal>

                        </goals>

                        <configuration>

                            <skip>false</skip>

                            <includes>

                                <include>**/integration/**/*.java</include>

                            </includes>

                        </configuration>

                    </execution>

                    <execution>

                        <id>run-test</id>

                        <phase>test</phase>

                        <goals>

                            <goal>test</goal>

                        </goals>

                        <configuration>

                            <skip>false</skip>

                            <includes>

                                <include>**/unit/**/*.java</include>

                            </includes>

                        </configuration>

                    </execution>

                </executions>

            </plugin>

            <plugin>

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

                <artifactId>maven-war-plugin</artifactId>

                <version>2.0</version>

                <configuration>

                    <dependentWarExcludes>WEB-INF/lib</dependentWarExcludes>

                </configuration>

            </plugin>

        </plugins>

maven-failsafe-plugin 配置POM.XML

实际上POM.XML提供了很强大的配置功能,这里利用一个maven的插件,叫maven-failsafe-plugin,具体配置如下:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.17</version>
        <executions>
            <execution>
                <id>integration-tests</id>
                <goals>
                    <goal>integration-test</goal>
                    <goal>verify</goal>
                </goals>
                <configuration>
                    <excludes>
                        <exclude>none</exclude>
                    </excludes>
                    <includes>
                        <include>**/*IT.java</include>
                    </includes>
              </configuration>
            </execution>
        </executions>
</plugin>

这里创建了一个execution,当执行integration-test goal的时候,执行包括“IT.java”结尾的所有java文件,那如何跳过unit test,integration-test呢?看下面利用了另外一个插件,叫maven-surefire-plugin,如下配置:

<plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-surefire-plugin</artifactId>
       <version>2.6</version>
       <configuration>
              <skip>false</skip>
       </configuration>
</plugin>

通过skip标签来指定跳过test的行为,默认是支持skipITsskipTests,前者是跳过integration-test,后者是跳过所有的测试(稍微说明下,跳过测试方法有很多种,比如maven-failsafe-plugin本身也支持加入skip选项,只不过实现之后每个命令的含义就略微有不同了,大家选择自己最习惯的就好了).文章来源地址https://www.toymoban.com/news/detail-618520.html

  •  推荐的测试目录结构

Unit Test Classes        : src/test/java/**/**Test.java
Integration Test Classes : src/test/java/**/**IT.java
TestCases dependent files: src/test/resources/*

到了这里,关于集成测试,单元测试隔离 maven-surefire-plugin的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Maven 跳过单元测试

    在软件开发过程中,Maven 自动化构建工具扮演着关键角色。尤其是,它通过单元测试确保代码质量。然而,在某些情况下,开发者可能希望跳过这些测试以加快构建过程。毕竟当项目庞大的时候,整儿管编译测试打包过程是持久而漫长的,不是所有的程序员都能忍耐。 以下是

    2024年02月19日
    浏览(39)
  • 单元测试、系统测试、集成测试详解

    🍅 视频学习: 文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 , 免费获取软件测试全套资料,资料在手,涨薪更快 单元测试是对软件基本组成单元进行的测试,如函数或一个类的方法。当然这里的基本单元不仅仅指的是一个函数或者方法,有可能

    2024年03月13日
    浏览(37)
  • 深入 Python 单元测试与集成测试:确保代码质量与稳定性【第132篇—Python 单元测试与集成测试】

    在软件开发过程中,保证代码的质量至关重要。而单元测试和测试驱动开发(TDD)是两种非常有效的方法,可以确保代码的质量和可靠性。本文将探讨如何在Python中使用单元测试和TDD来提高代码质量,并附有代码实例和解析。 单元测试是一种软件测试方法,用于验证代码中最

    2024年03月17日
    浏览(51)
  • 【springboot单元测试,集成测试】

    本文介绍一下SpringBoot中的测试方法 @SpringBootTest 一个普通的web api 测试类: 使用mockMvc好处是不会启动真实的web服务 当然你可以使用@SpingBootTest 并且注入一个RestTemplate来做真实的请求 假如希望仅仅测试controller层时, 可以使用另外一个注解 @WebMvcTest 他有一个参数可以指定测试

    2024年02月08日
    浏览(34)
  • 单元测试之 - Spring框架提供的单元/集成测试注解

    Spring框架提供了很多注解来辅助完成单元测试和集成测试(备注:这里的集成测试指容器内部的集成测试,非系统间的集成测试),先看看Spring框架提供了哪些注解以及对应的作用。 @RunWith(SpringRunner.class) / @ExtendWith(SpringExtension.class) : 用于在测试类中启用 Spring 框架的支持。

    2024年02月14日
    浏览(45)
  • 4大软件测试策略的特点和区别(单元测试、集成测试、确认测试和系统测试)_集成测试、系统测试、单元测试的反馈速度比较

    测试目标是验证最小单元的正确性、可靠性和稳定性; 测试结果通常以测试用例的成功率和错误报告等形式进行反馈 二、集成测试 集成测试也称为组装测试,是指在把各个模块连接起来的时候,测试跨越模块接口的数据是否会丢失、各个子功能组合起来是否能够达到预期要

    2024年04月23日
    浏览(41)
  • Maven工程测试:白盒测试、黑盒测试和单元测试详解

    了解如何在Maven项目中进行白盒测试、黑盒测试和单元测试。学习使用Junit编写可重复自动化测试,包括断言操作和@Before、@After注解的应用。

    2024年02月13日
    浏览(55)
  • 单元测试和集成测试的区别

    单元测试和集成测试是软件开发中常用的两种测试方法,它们的主要区别如下: 范围不同:单元测试关注于对软件中的最小功能单元进行测试,通常是对独立的函数、方法或类进行测试。而集成测试则更加综合,涉及多个模块、组件或子系统之间的交互和协同工作。 测试目

    2024年02月10日
    浏览(38)
  • maven sonar 扫描单元测试覆盖率为0,但是单元测试数不为0

    最初配置如下: sonar 扫描后的单元测试覆盖率为0。但是但与测试数量不为0. 而配置的 sonar : 单元测试数基于 maven-surefire-plugin 插件 单元测试覆盖率基于 jacoco-maven-plugin 插件。 发现 maven 执行后没有 jacoco.exec 文件。导致 sonar 单元测试覆盖率为 0。并且没有下面的 jacoco 结果文

    2024年02月11日
    浏览(36)
  • Maven-使用maven mvn命令进行单元测试、指定测试某个类、mvn test

    添加测试插件 运行mvn test命令

    2024年02月05日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包