变色龙引导

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

变色龙引导

变色龙引导_Arquillian变色龙。 简化您的Arquillian测试相关推荐

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

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

  2. jpa 测试_使用外星人进行测试:如何使用Arquillian测试JPA类型转换器

    jpa 测试 该帖子与+ Aslak Knutsen ( @aslakknutsen )一起撰写. JPA类型转换器为定义实体属性如何持久存储到数据库提供了一种简便的方法. 您可以使用它们来实现许多不 ...

  3. 使用外星人进行测试:如何使用Arquillian测试JPA类型转换器

    该帖子与+ Aslak Knutsen ( @aslakknutsen )一起撰写. JPA类型转换器为定义实体属性如何持久存储到数据库提供了一种简便的方法. 您可以使用它们来实现许多不同的功能,例如 ...

  4. 使用sikuli和Arquillian测试HTML5 canvas应用程序

    HTML5引入了一个很棒的新元素,可以用来在窗格上绘制任意内容: canvas元素. 数十年来,胖客户端应用程序的标准功能现已引入Web应用程序领域. Web开发人员不再需要使用专有插件在其应用程序中 ...

  5. linux windows变色龙,体验开源变色龙SUSE Linux Enterprise Server 11

    体验开源变色龙SUSE Linux Enterprise Server 11 SUSE Linux Enterprise Server 11主要针对的是企业用户,SUSE产品分为SUSE Linux ...

  6. 使用Arquillian测试Spring Data + Spring Boot应用程序(第1部分)

    Spring Data的使命是为数据访问提供一个熟悉且一致的,基于Spring的编程模型,同时仍保留基础数据存储的特​​殊特征. 它提供了与一些后端技术的集成,例如JPA,Rest,MongoDB,N ...

  7. arquillian_使用Arquillian测试安全的EJB

    arquillian 从历史上讲,很难测试安全的EJB. 到目前为止,我一直在使用专有技术(如JBossLoginContextFactory)中所述的文章( 使用Arquillian在WildFly ...

  8. openshift_在OpenShift上托管的WildFly实例上进行Arquillian测试

    openshift 技术提示#54解释了如何为现有Java EE项目启用Arquillian. 在该技巧中,测试是针对本地安装的WildFly服务器运行的. 如果此WildFly实例在OpenShif ...

  9. 使用Arquillian测试Spring Data + Spring Boot应用程序(第2部分)

    在上一篇文章中 ,我写了关于如何使用Arquillian Cube和 Docker一起测试Spring Data应用程序的信息. 测试看起来像: @RunWith(SpringRunner.class ...

最新文章

  1. k8s源码架构目录分析
  2. document.execCommand()方法处理Html数据
  3. Linux自带iscsi-target使用
  4. 工商银行:IT新架构及银行IT架构转型思考
  5. alias cli3 配置_vue-cli3全面配置详解
  6. Ⅲ:zookeeper之查看节点的状态及其监听器的使用
  7. Codeforces-33C. Wonderful Randomized Sum
  8. C++中文版本primer 第二章变量和基本类型 学习笔记
  9. java map 优化_java.util.map和java.util.set的优化实现?
  10. 坦克大战-C语言-详注版
  11. 编写高质量的VB代码
  12. Hadoop大数据实战权威指南
  13. 从阿尔法狗元(AlphaGo Zero)的诞生看终极算法的可能性
  14. 12款响应式 Lightbox(灯箱)效果插件
  15. 一文了解无线网桥-小白笔记
  16. mysql查询1999年后出生的_饭后笑笑 1999年出生的和2000年出生的秘密
  17. spring boot 中阿里druid 数据源配置及密码加密
  18. 软件测试的新技术和方法
  19. 最优策略(Optimal Policy)及贝尔曼最优方程(Bellman Optimally Equation)
  20. 【成为架构师课程系列】系统架构设计:非功能性目标的设计

热门文章

  1. [SDOI2019] 热闹的聚会与尴尬的聚会
  2. 不止代码:友好城市(动态规划)
  3. ARC132D-Between Two Binary Strings【贪心】
  4. AGC002(D~F)【Kruskal重构树,博弈论,dp】
  5. P5021-赛道修建【平衡树,贪心,二分答案】
  6. 2016 Multi-University Training Contest 1 1004 GCD(ST表+二分)
  7. 2021牛客暑期多校训练营5 G-Greater Integer, Better LCM(暴力+子集dp)
  8. 【线段树】Frog Traveler(CF751D)
  9. 【DP】【树状数组】方伯伯的玉米田/优美玉米(luogu 3287/金牌导航 数据结构优化DP-5)
  10. 2、异步HTTP编程