欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

为了简单起见,Arquillian Chameleon

发布时间:2023/12/3 53 豆豆
生活随笔 收集整理的这篇文章主要介绍了 为了简单起见,Arquillian Chameleon 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

使用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分发文件。

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

  • 您需要在要使用Arquillian和Wildfly的每个构建脚本中重复所有这些行。
  • 如果需要在另一个项目中使用另一个应用程序服务器,则需要知道需要哪个适配器工件,以及是否需要下载工件。 例如,如果嵌入了Jetty,则无需下载任何发行版,只需设置嵌入的依赖项即可。
  • 如果要针对多个应用程序服务器测试代码,则问题编号为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.xml的Arquillian配置文件,并进行以下配置:

    <?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的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。