设想:
我目前正在尝试使用 arquillian 在 java ee 应用程序中开发单元测试。作为测试容器,我使用在 Wildfly 服务器上运行的远程容器。只要所需的源类位于测试目录中,该设置就可以进行测试。问题:
一旦我想要执行测试的类在测试目录之外,类加载器就不再识别它们,我不能再像以前那样使用 shrinkWrap 将它们添加到微部署中。我做错了什么,我忘记了什么?我觉得这可能是我项目中一个非常简单的设置问题,因为我也是 maven 和 java ee 的新手。只要所有资源都在测试目录中,设置似乎就可以工作,我假设错误不是依赖问题,而是我的项目设置问题。这是我在stackoverflow上的第一个问题,请原谅我的任何缺点:D
错误信息
Could not invoke deployment method: public static org.jboss.shrinkwrap.api.spec.JavaArchive de.mathplan.moses.core.studiengang.model.StudiengangTest.createDeployment()
at org.jboss.shrinkwrap.api.asset.ClassLoaderAsset.<init>(ClassLoaderAsset.java:70)
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.foundClass(URLPackageScanner.java:165)
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handle(URLPackageScanner.java:157)
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.handle(URLPackageScanner.java:145)
at org.jboss.shrinkwrap.impl.base.URLPackageScanner.scanPackage(URLPackageScanner.java:113)
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addPackage(ContainerBase.java:1520)
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addPackages(ContainerBase.java:1497)
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClasses(ContainerBase.java:1358)
at org.jboss.shrinkwrap.impl.base.container.ContainerBase.addClass(ContainerBase.java:1285)
at de.mathplan.moses.core.studiengang.model.StudiengangTest.createDeployment(StudiengangTest.java:18)
]]></error>
Arquillian 依赖项
<!-- inside profile -->
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-remote</artifactId>
<version>3.0.1.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<version>1.7.0.Alpha5</version>
<scope>test</scope>
</dependency>
<!-- client deployment APIs for communicating with the container process -->
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
<artifactId>arquillian-protocol-servlet</artifactId>
<version>1.4.0.Final</version>
<scope>test</scope>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.4.0.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>