junit - 在gradle构建期间选择arquillian容器

标签 junit gradle jboss-arquillian

我正在使用junit和gradle运行Arquillian测试。如何选择开始使用哪个容器?

目前,我正在名称arquillian.launch的文件中定义容器限定符。

我的arquillian.xml如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<arquillian ...>
  <container qualifier="glassfish3-embedded" default="true">
    <configuration>
      ...
    </configuration>
  </container>
  <container qualifier="wls">
    <configuration>
      ...
    </configuration>
  </container>
</arquillian>

我的build.gradle如下所示:

[...]
configurations {
  glassfishEmbeddedTestRuntime { extendsFrom testRuntime }
  weblogic10RemoteTestRuntime { extendsFrom testRuntime }
}

dependencies {
  glassfishEmbeddedTestRuntime group: 'org.jboss.arquillian.container', name: 'arquillian-glassfish-embedded-3.1', version: '1.0.0.CR4'
  glassfishEmbeddedTestRuntime group: 'org.glassfish.main.extras', name: 'glassfish-embedded-all', version: libraryVersions.glassfish

  weblogic10RemoteTestRuntime group: 'org.jboss.arquillian.container', name: 'arquillian-wls-remote-10.3', version: '1.0.0.Alpha2' 
}

task glassfishEmbeddedTest(type: Test)

task weblogic10RemoteTest(type: Test)

tasks.withType(Test).matching({ t-> t.name.endsWith('Test') } as Spec).each { t ->
  t.classpath = project.configurations.getByName(t.name + 'Runtime') + project.sourceSets.main.output + project.sourceSets.test.output
}

如何扩展weblogic10RemoteTest的定义,以便选择容器,而不必在执行测试之前通过更改xml来编辑arquillian.launch文件或arquillian.xml文件?

我考虑过像这样:https://github.com/seam/solder/blob/develop/testsuite/pom.xml#L123

但是我不知道在gradle中该语句的等效性。

最佳答案

链接到的POM为运行测试的JVM设置系统属性。您可以通过配置Test任务在Gradle中执行相同的操作:

test { // or: tasks.withType(Test) {
    systemProperty "one", "foo"
    systemProperty "two", "bar"
}

(请注意,Gradle始终在单独的JVM中运行测试。)

有关更多信息,请参见Gradle Build Language Reference中的Test

关于junit - 在gradle构建期间选择arquillian容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21587477/

相关文章:

java - 通过 mockito 创建一个模拟列表

java - 注释类型测试的超时参数

java - 我的 JUnit 测试失败

junit - 阿奎利安 : Wildfly embedded?

maven - Arquillian JPA 教程 : Could not create new instance of class org. jboss.arquillian.test.impl.EventTestRunnerAdaptor

java - 在 EAR 构建之后运行测试

java - 为网络相关类编写单元测试

java - Gradle 与 Maven : Which one is the best option for Android development

安卓工作室 : Link of external JAR in a multi modules project

java - Gradle多项目,如何处理不同的rootDirs