用Maven实施单元测试是很普通的事情,我们大多数人都熟悉项目结构以及单元测试所在的位置。

但是,集成测试是一种不同的情况,大多数情况下它们具有完全不同的要求。 例如,可以让您的单元测试在内存数据库中的h2上运行,但是在集成测试和复杂查询方面 ,最好针对实际的关系数据库(如生产中使用的关系数据库)执行它们。

考虑以上示例,我们的集成测试可能具有不同的配置和依赖性。

因此,我们集成测试的目标是使它们与其他测试分开并分别执行。

关于源目录中的Maven结构,我们有主要的“文件夹”和测试“文件夹”。

以同样的方式,我们将添加一个名为“ it”的额外目录。 “ it”目录将包含一个用于Java源代码的Java目录和一个资源目录。 与测试目录的结构相同。

然后,我们应该指导maven构建代码并将其添加到测试源中。

<plugin><groupId>org.codehaus.mojo</groupId><artifactId>build-helper-maven-plugin</artifactId><version>1.5</version><executions><execution><id>add-test-source</id><phase>process-resources</phase><goals><goal>add-test-source</goal></goals><configuration><sources><source>src/it/java</source></sources></configuration></execution></executions></plugin>

通过使用构建助手maven插件,我们可以指示maven将额外的测试源目录添加到我们的构建中。

下一步是指示Maven运行我们的单元测试。 为此,我们将使用Maven 故障安全插件 。

故障安全插件旨在运行集成测试,而Surefire插件旨在运行单元测试。 选择(failsafe)这个名称是因为它是surefire的同义词,也因为它暗示了当它失败时,它是以安全的方式这样做的。

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-failsafe-plugin</artifactId><version>2.15</version><executions><execution><id>integration-test</id><goals><goal>integration-test</goal></goals></execution><execution><id>verify</id><goals><goal>verify</goal></goals></execution></executions></plugin>

然后执行集成测试,我们应该发出。

mvn verify

正如预期的那样,我们的集成测试单独运行。

综上所述,我们希望将集成测试与单元测试分开。 我们也希望它们分开运行。 这可以通过使用Maven故障安全插件来实现。
您可以在github上找到示例项目。

翻译自: https://www.javacodegeeks.com/2018/01/integration-tests-maven.html

与Maven的集成测试相关推荐

  1. cargo maven_与Maven 3,Failsafe和Cargo插件的集成测试

    cargo maven 开箱即用,可以在Maven中进行单元测试. 因此,它也经常用于集成测试. 这样做的主要缺点是集成测试可能需要花费更多的时间来执行,并且因为没有人喜欢每次构建都要等待很长时间–只 ...

  2. 与Maven 3,Failsafe和Cargo插件的集成测试

    开箱即用,可以在Maven中进行单元测试. 因此,它也经常用于集成测试. 这样做的主要缺点是集成测试可能需要花费更多的时间来执行,并且因为没有人喜欢每次构建都要等待很长时间–使用-Dmaven.tes ...

  3. 集成spring mvc_向Spring MVC Web应用程序添加社交登录:集成测试

    集成spring mvc 我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但它并不能真正告诉我们我们的应用程 ...

  4. 在Spring MVC Web应用程序中添加社交登录:集成测试

    我已经写了关于为使用Spring Social 1.1.0的应用程序编写单元测试的挑战,并为此提供了一种解决方案 . 尽管单元测试很有价值,但是它并不能真正告诉我们我们的应用程序是否正常运行. 这就是 ...

  5. mime类型是什么类型_使用多种MIME类型测试REST

    mime类型是什么类型 1.概述 本文将重点介绍测试具有多种媒体类型/表示形式的RESTful服务. 这是有关使用Spring和基于Java的配置的Spring Security设置安全的RESTfu ...

  6. shrinkwrap_Java EE 6测试第二部分– Arquillian和ShrinkWrap简介

    shrinkwrap 在Java EE 6测试的第一部分中,我简要介绍了使用Glassfish嵌入式容器的EJB 3.1 Embeddable API,以演示如何启动该容器,如何在项目类路径中查找be ...

  7. 使用多种MIME类型测试REST

    1.概述 本文将重点介绍测试具有多种媒体类型/表示形式的RESTful服务. 这是关于使用Spring和基于Java的配置的Spring Security设置安全的RESTful Web Servic ...

  8. Java EE 6测试第二部分– Arquillian和ShrinkWrap简介

    在Java EE 6测试的第一部分中,我简要介绍了使用Glassfish嵌入式容器的EJB 3.1 Embeddable API,以演示如何启动该容器,如何在项目类路径中查找bean以及运行非常简单的 ...

  9. MAVEN集成测试环境搭建

    1. MAVEN + SVN + HUDSON + SONAR集成测试环境搭建. 1.1 软件准备 Hudson.Jenkins.Sonar 1.2 软件安装 说明:本例均使用将应用程序部署至web容 ...

最新文章

  1. svm c++实现_机器学习笔记——SVM向量机
  2. 图像处理之opencv图像特效大全
  3. 基于NVIDIA显卡的硬编解码的一点心得 (完结)
  4. 【90】沟通:跨部门管理
  5. 3.2 参数估计:极大似然估计方法 ML
  6. 2030年春节,你会跟机器人一起过吗?
  7. 20220227:力扣第282场周赛(上)
  8. linux 开发板模拟u盘,ARM-Linux开发 - USB Gadget Storage 制作模拟U盘
  9. ai作文批改_有道词典上线AI作文批改功能,可自动批改雅思、四六级作文
  10. 李践《高效人士的五项管理-行动日志》 表格
  11. 关于cesium1.92以上版本无法加载draco压缩模型问题
  12. 大学,不是学习的终点,而是起点。
  13. 【工业视觉-CCD相机和CMOS相机成像的本质区别】
  14. 蓝桥杯试题 基础练习 Fibonacci数列
  15. java中定义byte数组,浅谈java的byte数组的不同写法
  16. 你真的适合做前端开发吗?
  17. 用Excel为人生铺路,走向希望的彼岸
  18. 当容器遇上Ceph和Gluster……
  19. 【数据结构】- 【考研复试面试题】-汇总大合集
  20. 区块链改革(链改)行动第二次联席会议在京召开

热门文章

  1. 如何基于Canal 和 Kafka,实现 MySQL 的 Binlog 近实时同步
  2. JAVA面试常考系列五
  3. 漫画:高并发下的HashMap
  4. Scratc3.0作品转化成exe文件
  5. 人脸登陆facelogin
  6. Hibernate基本概念 (4)
  7. JS中用构造函数创建对象
  8. go编译库给c语言函数返回值,go语言 函数return值的几种情况
  9. 赞扬别人团建评论_赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员...
  10. jdk 安全属性_系统属性的JDK 12 Javadoc标记