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

cargo maven

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

为了执行与Maven的集成测试,我们应该使用Maven Failsafe插件 。 因此,我们可以通过调用mvn test或使用mvn verify执行集成测试来快速运行单元测试。

集成测试应在尽可能与生产环境相似的环境中运行。 如果您的应用程序是WAR或EAR软件包,则可以使用Maven Cargo插件来告诉Maven将其部署在应用程序服务器或servlet容器上,并在已部署的应用程序上执行集成测试。

Maven故障安全插件配置

为了启用集成测试阶段,必须将故障安全插件配置添加到pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">...<build><plugins>...<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-failsafe-plugin</artifactId><version>2.12</version><executions><execution><goals><goal>integration-test</goal><goal>verify</goal></goals></execution></executions></plugin></plugins></build>...
</project>

现在,当调用mvn verify时,包含测试匹配的所有文件src/test/java/**/*IT.java将在集成测试阶段执行。

集成测试不过是使用JUnit或TestNG批注的类来告诉Maven哪种方法是测试,并且应该使用与单元测试相同的方式来声明。

Maven Cargo插件配置

Cargo插件支持市场上所有主要的应用服务器 。 在我的示例中,我将使用默认的Apache Tomcat 7安装。

  • Tomcat正在集成前阶段启动
  • tomcat在整合后阶段处于停止状态
<plugin><groupId>org.codehaus.cargo</groupId><artifactId>cargo-maven2-plugin</artifactId><version>1.2.0</version><configuration><container><containerId>tomcat7x</containerId><zipUrlInstaller><url>http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.16/bin/apache-tomcat-7.0.16.zip</url><downloadDir>${project.build.directory}/downloads</downloadDir><extractDir>${project.build.directory}/extracts</extractDir></zipUrlInstaller></container></configuration><executions><execution><id>start-tomcat</id><phase>pre-integration-test</phase><goals><goal>start</goal></goals></execution><execution><id>stop-tomcat</id><phase>post-integration-test</phase><goals><goal>stop</goal></goals></execution></executions>
</plugin>

效果很好。 现在,当您第一次执行mvn verify时,您可以看到在集成测试运行之前正在下载并启动Tomcat。

集成测试类示例

现在,我们终于可以编写有用的集成测试了–将检查应用程序是否发送正确的错误代码作为响应。

import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.junit.Test;import java.io.IOException;import static org.fest.assertions.Assertions.assertThat;public class CheckApplicationDeployIT {private static final String URL = "http://localhost:8080/myApp/testURL";@Testpublic void testIfAppIsUp() throws IOException {//givenHttpClient client = new DefaultHttpClient();HttpGet httpget = new HttpGet(URL);//whenHttpResponse response = client.execute(httpget);//thenassertThat(response.getStatusLine().getStatusCode()).isEqualTo(HttpStatus.SC_OK);}
}

当然,集成测试应该更复杂,并且实际上要测试行为。 现在,您可以设置Waitr,Selenium或任何其他满足您最佳需求的解决方案,并创建实际的集成测试。

结论

您是否总是应该在集成测试中测试已部署的应用程序? 它非常有用,但并非总是如此。 如果您的应用程序某种程度上取决于用户的IP地址,则您将无法在不同的请求中对其进行更改。

但是,如果您的应用程序是具有HTML或REST前端的经典Web应用程序,则强烈建议使用。

参考: 软件开发之旅博客上来自JCG合作伙伴 Maciej Walkowiak的Maven 3,故障安全和Cargo插件的集成测试 。

翻译自: https://www.javacodegeeks.com/2013/12/integration-tests-with-maven-3-failsafe-and-cargo-plugin.html

cargo maven

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【渝粤题库】陕西师范大学210019 学前教育科研方法 作业(专升本)

《学前教育科学研究方法》考评作业 一、单项选择题 1、科学研究是探讨未知的过程&#xff0c;这是科学研究的 特点。 A 客观性 B 创造性 C 继承性 D 控制性 2、在比较长的时间内&#xff0c;对一个儿童或一些儿童的心理发展&#xff0c;或教育规律进行有系统的定期研究是 A纵向…

linux 安装mongodb 64,在CentOS 6.x 64bit上安装MongoDB 3.2社区版

基本安装步骤参考: https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/1) 创建repo源文件:sudo vim /etc/yum.repos.d/mongodb-org-3.2.repo内容如下:[mongodb-org-3.2]nameMongoDB Repositorybaseurlhttps://repo.mongodb.org/yum/redhat/$releasever/mon…

【渝粤题库】陕西师范大学292241金融市场学Ⅰ 作业(高起专)

《金融市场学Ⅰ》作业 一、单项选择题 1&#xff0e;全国的银行监管权集中在中央&#xff0c;地方没有独立的权力&#xff0c;在中央一级有两家或两家以上结构共同负责的监管模式称之为( )。 A.单元多头金融监管体制     B.集中单一金融监管体制 C.跨国金融监管体制     …

[免费网络研讨会] Java 11的第一印象

一年多以前&#xff0c;我们正焦急地等待新的模块化Java 9的到来。大约在同一时间&#xff0c;引入了一个新的发布周期&#xff0c;该周期将每6个月发布一次新版本&#xff0c;并提供长期支持&#xff08;LTS&#xff09;。每3年发行一次&#xff08;或每6个版本发行一次&#…

linux redhat 命令大全,redhat Linux命令大全

一.启动,关机,登入,登出相关命令登录登出登出停止系统停止系统重启动切断电源把内存里的内容写入磁盘安装lilo启动管理程序安装lilo启动管理程序二. Shell相关命令切换Shell显示命令履历设置命令别名取消命令别名显示命令所在位置查询命令种类显示字符串或者变量内容设置/显示S…

【渝粤题库】陕西师范大学400005 中国传统文化 作业(专升本)

《中国文化传统》作业 一、填空题 1&#xff0e;原始宗教崇拜包括 、 、 、 、 。 2&#xff0e;在儒家经典文献系统中&#xff0c;六经指的是 、 、 、 、 、 . 3&#xff0e;宋代理学家朱熹曾编订《四书》&#xff0c;指的是 、 、 、 。 4&#xff0e;《老子》一书又称 &…

linux rcu机制,Linux RCU机制详解 (透彻)

一:前言RCU机制出现的比较早,只是在linux kernel中一直到2.5版本的时候才被采用.关于RCU机制,这里就不做过多的介绍了,网上有很多有关RCU介绍和使用的文档.请自行查阅.本文主要是从linux kernel源代码的角度.来分析RCU的实现.在讨论RCU的实现之前.有必要重申以下几点:1:RCU使用…

【渝粤题库】陕西师范大学600007 化工基础 作业(专升本)

陕西师范大学 内 部 题 库 教育 &#xff08;yuyueshool&#xff09; 编制 《化工基础》作业 一 填空 1&#xff0e;化工产品种类繁多&#xff0c;生产工艺流程千差万别&#xff0c;具体内容是动量传递、质量传递、热量传递和 &#xff0c;但其基础理论可概括为 和三传一反。…

linux可以http安装么,Linux 5下 http的安装

Web网站服务(一)http.conf中的全局配置ServerRoot&#xff1a;用于设置httpd服务的根目录&#xff0c;该目录中包括运行Web站点必须的目录和文件。默认根目录为&#xff1a;/usr/local/apache2Listen&#xff1a;用于设置Apache服务器监听的网络端口号&#xff0c;默认为80User…

java实现泛型检索_高级Java泛型:检索泛型类型参数

java实现泛型检索在JDK5中引入Java泛型之后&#xff0c; Java泛型Swift成为许多Java程序的组成部分。 但是&#xff0c;乍一看似乎很简单的Java泛型&#xff0c;程序员很快就会迷失此功能。 大多数Java程序员都知道Java编译器的类型擦除 。 一般而言&#xff0c;类型擦除意味着…

【渝粤题库】陕西师范大学900013 心身疾病防治与心理健康

一、单项选择题 1.现实生活中人们有着切身体会&#xff0c;精神紧张, 心理压力大, 情绪不稳定、 焦虑、悲伤等容易使人 A注意力不集中 B学习和工作效率提高 C思维和判断能力变强 D 免疫力增加 2.神经、内分泌和免疫系统是人类精神活动或心理活动的 A 数学基础 B 生理基础 C 天文…

APIGEE – API网关简介

在本文中&#xff0c;我想简要介绍一下APIGEE。 APIGEE主要提供现成的以下功能作为api网关。 协议转换 与任何协议进行转换&#xff0c;包括SOAP&#xff0c;REST&#xff0c;XML二进制或自定义 交通管理 开箱即用的灵活&#xff0c;分布式配额管理&#xff0c;速率限制和峰…

国家开放大学2021春1110工程地质题目

教育 教育 试卷代号&#xff1a; 1110 2021年春季学期期末统一考试 工程地质 试题 2021年7月 一、单项选择题&#xff08;将正确答案的序号填入括号&#xff0c;每小题2分&#xff0c;共计36分&#xff09; 1.地球的内圈中厚度最小的圈层是( )。 A.地壳 B.地核 C.地幔 D.不能…

linux 7 nmcli modify,nmcli的网络配置

使用nmcli命令配置网络NetworkManager是管理和监控网络设置的守护进程&#xff0c;设备既就是网络接口&#xff0c;连接是对网络接口的配置&#xff0c;一个网络接口可以有多个连接配置&#xff0c;但同时只有一个连接配置生效。1 配置主机名CentOS6 之前主机配置文件&#xff…

【渝粤题库】广东开放大学 互联网金融 形成性考核

选择题 题目&#xff1a;互联网金融的本质是 答案&#xff1a; A、平台经济 B、双边市场经济 C、营销模式 D、多边市场经济 题目&#xff1a;大数据的特点不包括 答案&#xff1a; A、多样 B、高速 C、低速 D、海量 题目&#xff1a;借贷关系的达成是通过借贷双方在平台上直接接…

【渝粤题库】广东开放大学 公共部门人力资源管理 形成性考核

选择题 题目&#xff1a;人本管理是以人为中心的管理&#xff0c;视员工为组织发展的&#xff08;&#xff09;。 答案&#xff1a; A、“第二资源” B、“重要资源” C、“主要资源” D、“第一资源” 题目&#xff1a;在现代组织赖以存在和发展的5类资源中&#xff0c;&#…

【渝粤题库】广东开放大学 基础会计 形成性考核

选择题 题目&#xff1a;会计科目是对&#xff08; &#xff09;的具体内容进行分类核算的项目。 题目&#xff1a;下列各项中&#xff0c;属于所有者权益类科目的是&#xff08;&#xff09;。 题目&#xff1a;引起资产和负债同时减少的业务是&#xff08; &#xff09;。 题…

删除linux 软raid0,配置Linux软RAID0

配置Linux软RAID0[[email protected] ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdc[[email protected] ~]# mdadm -C -v /dev/md0 -l 0 -n 2 /dev/sdb /dev/sdcmdadm: chunk size defaults to 512Kmdadm: /dev/sdb appears to be part of a raid array:levelraid0 de…

内存泄漏分析_调查内存泄漏第2部分–分析问题

内存泄漏分析这个小型系列的第一个博客介绍了如何创建一个非常泄漏的示例应用程序&#xff0c;以便我们可以研究解决服务器应用程序上基于堆的问题的技术。 它展示了Producer-Consumer模式的一个大问题&#xff0c;即消费者代码必须能够至少与生产者一样快&#xff08;甚至不是…

【渝粤题库】广东开放大学 应急管理 形成性考核

选择题 题目&#xff1a;&#xff08;&#xff09;是突发公共事件应急管理工作的最高行政领导机构。 题目&#xff1a;以下突发公共事件中&#xff0c;属于公共安全事件的是&#xff08;&#xff09;&#xff1f; 题目&#xff1a;我们赖以生活的价值是天生的&#xff0c;包括真…