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

chameleon 算法

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

这是通过在适配器的类路径中添加依赖项并取决于所使用的模式(嵌入式,托管或远程)来下载的来完成的。 变色龙sleepy-jpg-adapt-945-1 他是应用程序服务器。 例如,当在嵌入式或托管模式下使用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/arquillian
    http://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

chameleon 算法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值