我想针对数据库创建一个集成测试,然后在 wildfly/arquillian 环境中清理它。但是当我尝试执行测试时,我得到了
Could not create new instance of class org.jboss.arquillian.test.impl.EventTestRunnerAdaptor
。我使用 junit,并根据此 site 为我的集成测试实现了以下代码:
@RunWith(Arquillian.class)
public class MyFirstIT{
@Deployment
public static JavaArchive createTestArchive() {
return ShrinkWrap.create(JavaArchive.class, "test.jar")
.addClasses(EntityManager.class)
.addAsManifestResource(
EmptyAsset.INSTANCE,
ArchivePaths.create("beans.xml"));
}
@PersistenceContext
private EntityManager myEntityManager;
@BeforeAll
public static void setup() {...}
@Test
public void createInstanceTest() {
// ... Testing Code redacted
// ...
var myClass = myEntityManager.find(MyClass.class ,"1");
}
}
我的 beans.xml 定义为:
<beans xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/beans_2_0.xsd"
bean-discovery-mode="all">
</beans>
我的pom,xml包括:
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.13.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.glassfish.main.extras</groupId>
<artifactId>glassfish-embedded-all</artifactId>
<version>4.1.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-glassfish-embedded-3.1</artifactId>
<version>1.0.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.security</groupId>
<artifactId>wildfly-elytron-util</artifactId>
<version>2.1.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.testng</groupId>
<artifactId>arquillian-testng-core</artifactId>
<version>1.7.0.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-core</artifactId>
<version>1.9.1.Final</version>
<scope>test</scope>
</dependency>
这个配置似乎不起作用。我不知道我缺少什么,我可能需要添加什么,如果我做错了什么或者这根本不可能。
其他人似乎也有同样的问题,但该帖子是 2014 年的。也许该解决方案已被弃用?
我将不胜感激任何帮助。
您使用的
org.jboss.arquillian:arquillian-bom
版本是 2017 年的 - https://mvnrepository.com/artifact/org.jboss.arquillian/arquillian-bom - 而 org.jboss.arquillian.junit:arquillian-junit-core
是最近的。所以类路径错位很可能是罪魁祸首。
此外,获取完整的堆栈跟踪并尝试使用
-X
,--debug
运行 Maven 以获取更多调试信息。