Testing Arquillian和Open Liberty是否需要现有安装?
我熟悉Tomcat/TomEE和使用Arquillian测试应用程序。现在我们正转向开放自由。我看到Arquillian有一个使用嵌入式OpenLiberty的模块,但它似乎需要现有的OpenLiberty安装,其路径在配置中提供。这使得它不可移植,因此不适合自动测试,因为安装必须位于完全相同的路径上。Arquillian和TomEE是独立的,无需安装。因此,我的问题是,为什么开放自由也不可能做到这一点?这是为将来计划的吗 以下是如何将Arquillian与TomEE/Tomcat结合使用,以供参考:Testing Arquillian和Open Liberty是否需要现有安装?,testing,open-liberty,Testing,Open Liberty,我熟悉Tomcat/TomEE和使用Arquillian测试应用程序。现在我们正转向开放自由。我看到Arquillian有一个使用嵌入式OpenLiberty的模块,但它似乎需要现有的OpenLiberty安装,其路径在配置中提供。这使得它不可移植,因此不适合自动测试,因为安装必须位于完全相同的路径上。Arquillian和TomEE是独立的,无需安装。因此,我的问题是,为什么开放自由也不可能做到这一点?这是为将来计划的吗 以下是如何将Arquillian与TomEE/Tomcat结合使用,以供
<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://jboss.org/schema/arquillian"
xsi:schemaLocation="http://jboss.org/schema/arquillian http://www.jboss.org/schema/arquillian/arquillian_1_0.xsd">
<container qualifier="tomee" default="true">
<configuration>
<property name="httpPort">-1</property>
<property name="stopPort">-1</property>
<property name="users">user=pass</property>
</configuration>
</container>
</arquillian>
-1
-1
用户=通过
如您所见,运行测试不需要本地安装的路径。您需要做的唯一一件事是在test
范围中添加两个Maven依赖项,将它们拉入到TomEE(嵌入式)中。如果同样的方法也适用于开放自由,那就太好了。如果你看看
您将看到一个示例arquillian.xml,它设置$wlpHome
<property name="wlpHome">${wlp}</property>
${wlp}
来自环境变量$wlp。
('wlp'是Websphere Liberty Profile的缩写)
wlpHome变量在此处的托管/本地容器中使用:
动态执行此操作的示例是
系统属性${wlp}此处:
如果您还有任何疑问,请发布它们。。。
希望你喜欢OpenLiberty——它摇滚
Gordon更进一步..以上就是我们如何进行自动化测试 但它仍然使用这个位置 我明白了,关于根本不需要指定任何位置,你说: “您需要做的唯一一件事是在测试范围中添加两个Maven依赖项,这些依赖项可以拉入TomEE(嵌入式)。如果同样适用于Open Liberty,那就太好了。” 因此,考虑到这本书,maven将在类路径上放置一堆类 然后,测试运行将找到合适的容器 在上运行测试 我将在会议上提出一个问题
为了满足要求,请随意添加备注等。您似乎试图实现的结果是使用arquillian为liberty提供嵌入式运行时。然而,据我所知,openliberty团队目前只提供了一个远程容器适配器和一个托管容器适配器 我们也有类似的需求,希望在不需要Openliberty服务器的情况下运行自动化集成测试。我们使用liberty maven插件解决了这个问题 然后,构建/测试过程将是:
mvnverify
,liberty maven插件将生成我们要对其运行测试的指定openliberty通过这种方式,我们可以确保本地环境或Jenkins CI/CD服务器中始终存在符合我们喜好的可运行liberty服务器,基本上获得了与嵌入式容器相同的效果 你能提供更多关于你所说的嵌入式开放自由容器的信息吗?正式地说,我们只提供一个托管的和远程的容器:如果“在相同的确切路径上存在”,您的意思是必须通过文件系统访问它,那么对于托管容器来说,这是正确的。对于远程容器,您可以在别处托管Liberty,并使用JMX连接/运行测试。那太好了!
<plugin>
<groupId>net.wasdev.wlp.maven.plugins</groupId>
<artifactId>liberty-maven-plugin</artifactId>
<version>${version.liberty-maven-plugin}</version> <!-- plugin version -->
<configuration>
<assemblyArtifact> <!-- Liberty server to run test against -->
<groupId>io.openliberty</groupId>
<artifactId>openliberty-runtime</artifactId>
<version>18.0.0.4</version>
<type>zip</type>
</assemblyArtifact>
<configDirectory>src/liberty/${env}/</configDirectory>
<configFile>src/liberty/server.xml</configFile>
<serverName>defaultServer</serverName>
</configuration>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>create-server</goal>
</goals>
</execution>
</executions>
</plugin>
<arquillian xmlns="http://jboss.org/schema/arquillian">
<container qualifier="liberty-managed" default="true">
<configuration>
<property name="wlpHome">target/liberty/wlp</property>
<property name="serverName">defaultServer</property>
</configuration>
</container>
</arquillian>