Arquillian变色龙。 简化您的Arquillian测试

Arquillian Chameleon的诞生是为了简化Arquillian测试的配置。 我很自豪地宣布,使用1.0.0.CR2版本,我们不仅简化了Arquillian测试的配置方式,而且简化了编写方式。

在此新版本中,添加了三个新的简化:

  • 您只需要使用1个(或最多2个依赖项,以防您想使用自动部署功能)
  • 不必添加任何依赖关系来定义要用于运行测试的应用程序服务器。 甚至不必使用arquillian.xml文件来定义它。
  • 不必使用ShrinkWrap来构建您的程序包。 您仍然可以使用它,但是可以将创建程序包的过程委托给自定义SPI。

因此,让我们开始吧。

相依性

您只需要添加一个依赖关系,而不再需要添加Arquillian依赖关系+容器依赖关系。

<dependency><groupId>org.arquillian.container</groupId><artifactId>arquillian-chameleon-junit-container-starter</artifactId><version>${arquillian.chameleon.version}</version><scope>test</scope>
</dependency>

容器的定义

@RunWith(ArquillianChameleon.class)
@ChameleonTarget("wildfly:11.0.0.Final:managed")
public class GameResourceRestApiTest {
}

您只需要使用ArquillianChameleon运行器和特殊注释@ChameleonTarget来定义要使用的容器。 在此示例中,配置了具有托管模式的Wildfly 11

运行此测试时,将使用Arquillian Wildfly依赖项配置classpath,下载应用程序服务器,然后像其他Arquillian测试一样运行。

您可以在https://github.com/arquillian/arquillian-container-chameleon#arquillian-chameleon-runner中了解有关此功能的更多信息。

自动部署

Arquillan允许您定义Java SPI来描述应如何创建档案。 这实际上意味着,如果您提供自动创建部署文件的实现,则不需要@Deployment方法。

Arquillian Chameleon目前提供两种实现:

  1. 文件,文件部署已创建的文件。 您需要设置文件的位置。
  2. 它运行使用嵌入的Maven该项目的构建和生成的存档Maven是作为部署档案库。

对于本示例,我将以多模块项目为例,但是请注意,如果您创建一个无多模块项目,则默认设置可以完美地工作。

<dependency><groupId>org.arquillian.container</groupId><artifactId>arquillian-chameleon-maven-build-deployment</artifactId><version>${arquillian.chameleon.version}</version><scope>test</scope>
</dependency>
@RunWith(ArquillianChameleon.class)
@ChameleonTarget("wildfly:11.0.0.Final:managed")
@MavenBuild(pom = "../../pom.xml", module = "gamepage/impl")
@DeploymentParameters(testable = false)
public class GameResourceRestApiTest {@ArquillianResourceURL url;
}

注意,根据您选择的方法( FileMaven ),您需要在类路径上添加实现。

在这种情况下,我选择使用Maven方法,这意味着归档是通过构建所有项目来生成的。

由于该示例,此测试特定于两件事,需要对其进行自定义(而不是默认设置)。

第一个是pom位置。 默认情况下, @ MavenBuild批注使用执行测试的pom.xml。 对于多模块项目,您不想从定义测试的模块运行构建,而要从项目的根目录运行,因此您将获得一个包含所有依赖项的完整档案。 对于这种情况,您需要将其设置在何处。

第二个是生成用于部署的存档的位置。 默认情况下,您无需指定任何内容,因为在没有多模块项目的情况下,您仅生成一个文件。 但是对于多模块项目,您将生成多个归档,因此需要指定哪个模块包含最终归档。

就是这样,当您运行此测试时, Arquillian将下载Wildfly,启动它,运行构建以获取最终的部署文件(例如.war),对其进行部署并最终运行该测试。

请注意,还没有强制使用@DeploymentParameters批注,但允许您像使用@Deployment批注那样配置部署,例如设置部署名称或将容器(默认容器)的模式更改为作为客户。

您可以在以下位置看到完整的示例: https : //github.com/lordofthejars/games-monolith/blob/master/gamepage/impl/src/test/java/org/lordofthejars/games/game/GameResourceRestApiTest.java

您也可以在https://github.com/arquillian/arquillian-core/blob/master/docs/deployment-archives.adoc#deployment-archives-using-java-spi上了解有关自动部署功能的更多信息。

结论

您会看到一切都已简化很多。 这个想法是为了提供您在运行Spring测试时获得的类似体验。

我们不断学习,

亚历克斯

翻译自: https://www.javacodegeeks.com/2018/03/arquillian-chameleon-simplifying-your-arquillian-tests.html

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

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

相关文章

为什么要学习鸿蒙,HarmonyOS不只是操作系统

前些天发现了十分不错的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;没有广告&#xff0c;分享给大家&#xff0c;大家可以自行看看。&#xff08;点击跳转人工智能学习资料&#xff09; 前言 对于IT行业&#xff0c;头部力量或者已经形成生态的东西…

mysql 视图树查询_TreeView (树视图)遍历数据库的方法

多数从事数据库编程人员都经历过&#xff0c;对新接触的数据库技术无论是低版本Foxbase、Access97-2000还是支持网络环境高版本的Sql Server2000和 Oracel等系统&#xff0c;都经过一个循循渐进、吃苦耐劳学习过程&#xff0c;达到知识技术从量变到质变的过程&#xff0c;才能把…

(1.3)HarmonyOS鸿蒙启动程序运行流程

程序启动运行流程&#xff1a; ①解析config.json文件 ②初始化 ③获取入口Ability的全类名&#xff08;config.json里的module里的mainAbility&#xff09; ④找到Ability并运行 ⑤运行Ability中的子界面 ⑥加载xml文件&#xff0c;展示内容&#xff08;xml在resources里面&am…

arraylist内存溢出_ArrayList使用内存映射文件

arraylist内存溢出介绍 内存中的计算由于负担得起的硬件而开始兴起&#xff0c;大多数数据保留在RAM中以满足延迟和吞吐量的目标&#xff0c;但是将数据保留在RAM中会增加垃圾收集器的开销&#xff0c;尤其是在您不预先分配内存的情况下。 因此&#xff0c;有效地我们需要一种无…

【vtkWidgetRepresentation】第十八期 vtkHoverWidget

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 前言 本文分享vtkHoverWidget,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ~YO 1. vtkHoverWidget vtkHoverWidget用于在呈现窗口中…

Java面向对象(2)--类的成员属性

基本格式&#xff1a;修饰符 数据类型 属性名 初始化值 ; 说明1: 修饰符 ①常用的权限修饰符&#xff1a;private、缺省、protected、public ②其他修饰符&#xff1a;static、final 说明2&#xff1a;数据类型 任何基本数据类型和任何引用数据类型。 说明3&#xff1a;属性…

使用Spring Session和JDBC DataStore进行会话管理

在Web应用程序中&#xff0c;用户会话管理对于管理用户状态至关重要。 在本文中&#xff0c;我们将学习在集群环境中管理用户会话所遵循的方法&#xff0c;以及如何使用Spring Session以更加简单和可扩展的方式实现它。 通常在生产环境中&#xff0c;我们将有多个服务器节点&a…

Java面向对象(3)--类的成员方法

基本格式&#xff1a; 修饰符 返回值类型 方法名&#xff08;参数类型 形参1, 参数类型 形参2, …&#xff09;&#xff5b;方法体程序代码;return 返回值; &#xff5d;修饰符&#xff1a;public,缺省,private, protected等 返回值类型&#xff1a; ①没有返回值&#xff1a…

python统计图像直方图_计算机视觉7-像素点直方图统计、掩膜图像

1.灰度图的直方图(1)调用库import cv2import matplotlib.pyplot as pltimport numpy as np #创建掩膜时需要(2)绘图-方法1imgcv2.imread(F:cat.jpg,0)plt.hist(img.ravel(),256,[0,256])plt.show()plt.hist是一个画直方图的命令&#xff1b;img.ravel()可以将图片转化成一维数组…

计算机二级web题目(8.1)--综合选择题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1、一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再…

Java面向对象(4)--封装和隐藏

Java中通过将数据声明为私有的(private)&#xff0c;再提供公共的&#xff08;public&#xff09;方法:获取getXxx()和设置setXxx()实现对该属性的操作&#xff0c;以实现下述目的&#xff1a; ①隐藏一个类中不需要对外提供的实现细节。 ②使用者只能通过事先定制好的方法来访…

跑来跑去:假人与AWS Lambda的第一次接触

一切始于埃及人在一个木框上滑动几块大理石以简单的算术使其大脑放松。 或许是希腊人发明了Antikythera机制来追踪行星的运动至每千年2度的精度 。 无论哪种方式&#xff0c;计算都已经走了很长一段路&#xff1a;查尔斯巴贝奇的分析引擎 &#xff0c;艾伦图灵的Enigma-breaker…

(2.1)HarmonyOS鸿蒙Ability创建,XML和Java页面布局UI

鸿蒙UI中&#xff0c;提供了两种编写布局的方式&#xff1a; ①在XML中声明UI布局 ②在Ability代码中直接通过Java创建布局 这两种方式创建出的布局没有本质差别&#xff0c;但是XML方式较为方便简单。 在XML文件中布局 与HTMLCSS的前端布局类似&#xff0c;通过使用不同类型的…

使用Azure Blob存储托管Maven工件

如果您使用Microsoft Azure并且将Java用于项目&#xff0c;则Azure Blob存储是托管团队工件的理想场所。 它很容易设置&#xff0c;而且很便宜。 如果您对它们的功能不特别感兴趣&#xff0c;那么它比设置现有存储库选项&#xff08;jfrog&#xff0c;nexus&#xff0c;archiv…

(2.2)HarmonyOS鸿蒙页面跳转

本文页面跳转基于《Ability创建子页面布局》所存在的两个页面MainAbility和SecondAbility。 在MainAbilitySlice中进行代码编写 package com.example.myapplication.slice;import com.example.myapplication.ResourceTable; import ohos.aafwk.ability.AbilitySlice; import o…

java 将换行代替_Java批量将文件中的段落替换成空格,根据指定分隔符换行(SQL示例)...

我的需求是SQL文件中有成千的类似数据&#xff0c;我要将它们进行转换格式&#xff0c;如下图第一步&#xff1a;将字符段楼替换&#xff0c;使用word排版把数据拷贝到word中&#xff0c;使用特殊字符替换点击全部替换&#xff0c;替换之后如下图&#xff0c;这时候它是一串很长…

计算机二级web题目(8.2)--基本操作题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web1目录中&#xff0c;存有1.htm文件&#xff0c;该文件不完…

java的选项板_CAD工具选项板的介绍以及新建方法

CAD中的工具选项板是【工具选项板】窗口中选项卡形式的区域&#xff0c;不但能提供组织、共享和放置块及填充图案的很有效的方法&#xff0c;还能够包含由第三方开发人员提供的自定义工具。【工具选项板】窗口包括注释、建筑、机械、电力、图案填充和土木工程等选项板。当需要向…

java单链表 提供增删改查_java实现单链表增删改查的实例代码详解

package 数据结构算法.链表;/**定义节点* 链表由节点构成*/public class node {private e e; //数据dataprivate node next; //指向下一个节点public node() {}public node(e e) {this.e e;}public node getnext() {return next;}public void setnext(node next) {this.next …

java接口安全怎么处理_Restful API 接口安全性设计

1.API接口设计规范2.安全性设计a.白名单限制仅接受特定系统的请求响应&#xff0c;调用方的IP地址需要在本系统中报备&#xff0c;否则无法调用b.合法身份合法性验证Basic Authentication :这种方式是直接将用户名和密码放到Header中&#xff0c;使用 Authorization: Basic Zm9…