使用Arquillian时,您需要做的一件事就是定义要在哪个容器下执行所有测试。

这是通过在适配器的类路径中添加依赖项并取决于所使用的模式(嵌入式,托管或远程)来下载的来完成的。 手动安装应用程序服务器。 例如,当在嵌入式或托管模式下使用Wildfly时,就会发生这种情况。

使用Wildfly的pom.xml的示例可能是:

<dependencies><dependency><groupId>org.wildfly</groupId><artifactId>wildfly-arquillian-container-managed</artifactId><version>${version.org.wildfly}</version><scope>test</scope></dependency>
</dependencies><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><executions><execution><id>unpack</id><phase>process-test-classes</phase><goals><goal>unpack</goal></goals><configuration><artifactItems><artifactItem><groupId>org.wildfly</groupId><artifactId>wildfly-dist</artifactId><version>${version.org.wildfly}</version><type>zip</type><overWrite>false</overWrite><outputDirectory>${project.build.directory}</outputDirectory></artifactItem></artifactItems></configuration></execution></executions></plugin></plugins>
</build>

注意,在先前的脚本中,您需要定义Arquillian适配器(在本例中为托管适配器),并使用maven-dependency-plugin下载Arquillian使用的Wildfly分发文件。

这种方法是好的并且行之有效,但是它具有三个缺点:

  1. 您需要在要使用Arquillian和Wildfly的每个构建脚本中重复所有这些行。
  2. 如果需要在另一个项目中使用另一个应用程序服务器,则需要知道需要哪个适配器工件,以及是否需要下载工件。 例如,如果嵌入了Jetty,则无需下载任何发行版,只需设置嵌入的依赖项即可。
  3. 如果要针对多个应用程序服务器测试代码,则问题编号为2,并且开始处理配置文件。
但是,使用Arquillian Chameleon可以解决所有这些问题。 Arquillian Chameleon是一个通用容器,它从arquillian.xml读取要在测试中使用的容器,哪个版本和哪种模式,他将负责将所需的适配器添加到类路径中,下载所需的所有发行版并配置协议(此操作是您不应触摸的用户)。
如何使用Arquillian Chameleon非常简单。 做通常的事情,例如添加Arquillian bom和添加Chameleon Container而不是任何应用程序服务器特定的工件:
<dependency><groupId>org.arquillian.container</groupId><artifactId>arquillian-container-chameleon</artifactId><version>1.0.0.Alpha7</version><scope>test</scope>
</dependency>

然后在src / test / resources创建名为arquillian.xmlArquillian配置文件,并进行以下配置:

<?xml version="1.0"?>
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://jboss.org/schema/arquillian"xsi:schemaLocation="http://jboss.org/schema/arquillianhttp://jboss.org/schema/arquillian/arquillian_1_0.xsd"><container qualifier="chameleon" default="true"><configuration><property name="chameleonTarget">wildfly:9.0.0.Final:managed</property></configuration></container></arquillian>

注意,现在您只需要使用一个友好的属性chameleonTarget来定义要使用的容器,版本和模式。 在前面的示例中, Wildfly 9.0.0.Final具有托管适配器。

当使用此配置运行任何测试时, Chameleon将检查是否已下载Wildfly 9.0.0.Final发行版,如果未下载最终发行版,则会将Wildfly 9.0.0的托管适配器添加到类路径中,并最终像其他Arquillian一样执行测试测试。

如果要使用Payara而不是Wildfly会发生什么? 您只需要将chameleonTarget属性更改为payara:4.1.1.163:managed,例如以托管模式针对Payara 4.1.1运行测试。

提示:您可以使用Java系统属性(-Darq.container.chameleon.chameleonTarget = payara:4.1.1.163:managed)来设置此属性,目前, 变色龙支持下一个容器:

  • JBoss EAP 6.x,7.x
  • WildFly 10.x,9.x,8.x
  • JBoss AS 7.x
  • GlassFish 3.1.2、4.x
  • Payara 4.x

我们不断学习,
亚历克斯

我可以看到你,你的棕色皮肤在阳光下闪闪发光,我看到你走路真的很慢(夏天的男孩– Ataris)

音乐: https : //www.youtube.com/watch?v = Qt6Lkgs0kiU

翻译自: https://www.javacodegeeks.com/2016/09/arquillian-chameleon-sake-simplicity.html

为了简单起见,Arquillian Chameleon相关推荐

  1. chameleon 算法_为了简单起见,Arquillian Chameleon

    chameleon 算法 使用Arquillian时,您需要做的一件事情就是定义要在哪个容器下执行所有测试. 这是通过在适配器的类路径中添加依赖项并取决于所使用的模式(嵌入式,托管或远程)来下载的来完 ...

  2. chameleon 算法_使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试...

    chameleon 算法 从我以前的帖子继续在这里 ,我想我已经了解了Java EE和也的Arquillian,并测试了一些新的(和令人兴奋的)事,我想与大家分享. 但是,在开始之前,我想首先请您注意 ...

  3. 使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试

    从我以前的帖子继续在这里 ,我想我已经了解了Java EE和也的Arquillian,并测试了一些新的(和令人兴奋的)事,我想与大家分享. 但是,在开始之前,我想首先请您注意以下几点(这些纯粹是我的观 ...

  4. tms tck_在雅加达EE TCK中使用Arquillian的可能方法

    tms tck 最近,我们讨论了如何创建独立的Jakarta Batch测试套件(TCK). 对于大多数提交者而言,使用Arquillian将测试从实现中如何执行抽象化是很自然的. 但是Romain提 ...

  5. 变色龙引导_Arquillian变色龙。 简化您的Arquillian测试

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

  6. 在雅加达EE TCK中使用Arquillian的可能方法

    最近,我们讨论了如何创建独立的Jakarta Batch测试套件(TCK). 对于大多数提交者而言,使用Arquillian将测试从实现中如何执行抽象化是很自然的. 但是Romain提出了一个有趣的想 ...

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

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

  8. 台式机的集显HD4600驱动-黑苹果之路

    台式机的集显HD4600驱动-黑苹果之路 半桶水还真可怕,整了一个礼拜的台式机黑苹果,竟然都没搞定asus z87-k的HD4600核显.最终为了不耽误工作,上淘宝,花钱买服务.显卡驱动分为变色龙和c ...

  9. Chameleon跨端框架——壹个理想主义团队的开源作品

    文章较长,信息量很大,请耐心阅读,必然有收获.下面正文开始~ 背景 解决方案 原理 久经考验 生产应用举例 易用性好 多态协议 学习成本低 渐进式接入 业内对比 后期规划 理想主义 历经近20个月打磨 ...

最新文章

  1. android系统的iphone,iPhone上安装Android系统详细步骤。
  2. JS+CSS打造一款漂亮绿色相册代码
  3. python def函数报错详解_【python】详解python函数定义 def()与参数args、可变参数*args、关键参数**args使用实例...
  4. 读书笔记 数据化营销
  5. 资源—稀疏编码(sparse coding)
  6. 关于编程语言的一点思考
  7. 《自然语言处理技术在中文全文检索中的应用》笔记
  8. 公式编辑器如何打出空格
  9. 求解函数优化问题的改进布谷鸟搜索算法
  10. 美团外卖uml流程图_以美团外卖为例,区别业务流程图和页面流程图 | 人人都是产品经理...
  11. 弹出启动windows安全中心服务器,win10系统启用windows安全中心服务器提示关闭的操作方法...
  12. [Contrastive Learning] Improving Contrastive Learning by Visualizing Feature Transformation
  13. dCas9-ROS1——靶向去甲基化的捷径
  14. LIN Bus | 一个应用广泛的串行通信协议
  15. QT 按钮切换背景图片
  16. 传奇人物张三的爱情困境
  17. 零售门店促销创新的八个思路
  18. 未来,大数据行业工资会断崖式下滑吗?
  19. 掌握正确的运动姿势,很有必要!
  20. PHP - 字符串 - 处理正反斜线 及 处理中文全角空格

热门文章

  1. Java动态代理之cglib
  2. java多线程之:SynchronousQueue队列
  3. 使用ListView控件展示数据
  4. oracle基本笔记整理及案例分析1
  5. 2020蓝桥杯省赛---java---B---7(单词分析)
  6. 马踏棋盘算法(骑士周游)+贪心优化
  7. Android模拟器之神奇Genymotion的安装
  8. think-in-java(9)接口
  9. java数据库编程——Insert and Retrieve Images from MySql Table Using Java
  10. JDK8的日期时间类2