我有一个非常基本的简单配置,如下所示
--- clip ---
compile group: 'org.jboss.arquillian', name: 'arquillian-bom', version: '1.4.0.Final', ext: 'pom'
testCompile group: 'org.jboss.arquillian.junit', name: 'arquillian-junit-container', version: '1.4.0.Final'
testCompile group: 'org.jboss.arquillian.container', name: 'arquillian-weld-ee-embedded-1.1', version: '1.0.0.Final'
testCompile 'org.jboss.weld:weld-core:2.4.5.Final'
testCompile group: 'junit', name: 'junit', version: '4.11'
--- end clip ---
这是我的测试类
@RunWith(Arquillian.class)
public class TooltipGeneratorTest {
@Deployment
public static JavaArchive createDeployment() {
return ShrinkWrap.create(JavaArchive.class)
.addClass(XXXX.class)
.addAsManifestResource(EmptyAsset.INSTANCE, "beans.xml");
}
@Test
public void testStart() {
System.out.print("gamma");
assert true;
}
如你所见,我甚至没有注入豆子。我无法在焊接容器中进行基本的arquillian测试。
使用
运行时出现的错误gradle clean test
是
<failure message="java.lang.NoSuchMethodError: org.junit.runners.model.TestClass.getAnnotatedFields()Ljava/util/List;" type="java.lang.NoSuchMethodError">java.lang.NoSuchMethodError:
是否缺少依赖? 如tutorial中所述,我拥有所有必需的依赖项
提前致谢
答案 0 :(得分:2)
java.lang.NoSuchMethodError: org.junit.runners.model.TestClass.getAnnotatedFields()Ljava / util / List;
和
testCompile组:“ junit”,名称:“ junit”,版本:“ 4.11”
方法List<FrameworkField> TestClass.getAnnotatedFields
在JUnit 4中确实存在,但是Arquillian寻找的带有no arguments的特定版本仅在JUnit 4.12 中添加。
答案 1 :(得分:0)
经过几个小时的搜索,我找到了解决方案:
<强> 上下文 强> arquillian在导入时与maven完美配合
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.4.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<强> 问题 强> 写作
compile group: 'org.jboss.arquillian', name: 'arquillian-bom', version: '1.4.0.Final', ext: 'pom'
不会替换它,因为gradle不会导入带有范围导入的pom工件
<强> 溶液 强> 幸运的是,gradle新版本4.6及以上版本支持此功能。所以
将此添加到gradle.settings(支持bom)
enableFeaturePreview('IMPROVED_POM_SUPPORT')
完整解决方案
repositories {
mavenLocal()
maven { url "http://repo.maven.apache.org/maven2" }
}
dependencies {
// compileOnly 'javax:javaee-api:7.0'
testCompile 'org.jboss.weld:weld-core:2.4.5.Final'
// this is the BOM
testCompile 'org.jboss.arquillian:arquillian-bom:1.4.0.Final'
testCompile 'org.jboss.arquillian.junit:arquillian-junit-container:1.4.0.Final'
testCompile group: 'org.arquillian.container', name: 'arquillian-container-chameleon', version: '1.0.0.CR2'
testCompile 'junit:junit:4.12'
并在
下的src /测试/资源/
文件arquillian.xml
<?xml version="1.0" encoding="UTF-8"?>
<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="wildfly" default="true">
<configuration>
<property name="chameleonTarget">wildfly:11.0.0.Final:managed</property>
</configuration>
</container>
</arquillian>