【发布时间】:2020-05-04 19:36:03
【问题描述】:
所以我尝试在 Eclipse 上使用 Arquilian 为学校项目测试 maven 项目,但是当我尝试通过
mvn clean test
运行测试时,我得到以下信息堆栈跟踪:
我正在使用以下 arquillian.xml:
<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns="http://jboss.org/schema/arquillian"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://jboss.org/schema/arquillian
http://jboss.org/schema/arquillian/arquillian_1_0.xsd">
<defaultProtocol type="Servlet 3.0" />
<container qualifier="jboss" default="true">
<configuration>
<property name="jbossHome">home/user/CS513-Archive/wildfly-
16.0.0.Final</property>
</configuration>
</container>
</arquillian>
还有下面的test-persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="test">
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
而test-ds.xml如下:
<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<!-- The datasource is bound into JNDI at this location. We reference
this in META-INF/test-persistence.xml -->
<datasource jndi-name="java:jboss/datasources/BeanValidationQuickstartTestDS"
pool-name="bean-validation-quickstart-test" enabled="true"
use-java-context="true">
<connection-url>jdbc:h2:mem:bean-validation-quickstart-test;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
与 pom.xml 中的依赖关系:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.junit</groupId>
<artifactId>arquillian-junit-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
<artifactId>arquillian-protocol-servlet</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.13.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<profiles>
<profile>
<id>arq-managed</id>
<dependencies>
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-managed</artifactId>
<version>2.1.0.Final</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>arq-remote</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<dependencies>
<dependency>
<groupId>org.wildfly.arquillian</groupId>
<artifactId>wildfly-arquillian-container-remote</artifactId>
<version>2.1.0.Final</version>
<scope>test</scope>
</dependency>
</dependencies>
</profile>
</profiles>
请注意,我是 Maven 和 arquillian 的新手,我可能会遗漏一些琐碎的事情。
【问题讨论】:
-
你知道它所抱怨的班级 (
fr.esisar.locVoiture.stateless.CapAnalogiqueStateless) 吗?即是你写的东西,还是依赖 -
@Gus 这是我编写并添加到测试存档中的类,如下所示:`@Deployment public static Archive> createArchiveTest(){ return ShrinkWrap.create(WebArchive.class, "testCapAnalogique.war ") .addClasses(CapAnalogique.class, CapAnalogiqueItfLocal.class, CapAnalogiqueItfRemote.class, CapAnalogiqueStateless.class) .addAsResource("META-INF/test-persistence.xml","META-INF/persistence.xml") .addAsWebInfResource(EmptyAsset .INSTANCE,ArchivePaths.create("beans.xml")) .addAsWebInfResource("test-ds.xml"); } `
-
嗯,我不熟悉 arquillian,所以这是通用的故障排除建议……我会验证它正在构建的 .war 文件是否确实具有该类。在构建文件夹中可能有一个 .war 工件,您可以打开并查看:testCapAnalogique.war 只是一个特殊的 jar 文件,可以使用 winzip 打开。它应该有一个 WEB-INF/classes 目录,其中包含该类。
-
其实连.war都没有创建,反正我也找不到。
标签: eclipse maven m2eclipse jboss-arquillian