集成测试:无法创建 org.jboss.arquillian.test.impl.EventTestRunnerAdaptor 类的新实例

问题描述 投票:0回答:1

我想针对数据库创建一个集成测试,然后在 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 年的。也许该解决方案已被弃用?

我将不胜感激任何帮助。

integration-testing wildfly cdi entitymanager jboss-arquillian
1个回答
0
投票

您使用的

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 以获取更多调试信息。

© www.soinside.com 2019 - 2024. All rights reserved.