我已经在一些JUnit测试中设置了我们的项目,这些测试由Arquillian在完整的JBoss Server中运行(在一个名为 jboss-remote-6 的配置文件中)。我几乎完成了http://docs.jboss.org/arquillian/reference/latest/en-US/html/gettingstarted.html手册中的所有操作。
如果我在控制台中执行mvn test
,那么一切都会正确执行并且会检查断言。
但是当我尝试在Eclipse中运行JUnit测试用例时,它失败并出现以下异常:
org.jboss.arquillian.impl.client.deployment.ValidationException: DeploymentScenario contains targets not maching any defined Container in the registry. _DEFAULT_
at org.jboss.arquillian.impl.client.deployment.DeploymentGenerator.validate(DeploymentGenerator.java:95)
at org.jboss.arquillian.impl.client.deployment.DeploymentGenerator.generateDeployment(DeploymentGenerator.java:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
(...)
我正确地将此项目的Maven配置文件设置为“jbossas-remote-6”,如pom.xml中所述。我究竟做错了什么?谷歌在这个特定的方面没有帮助。
祝你好运, 塞巴斯蒂安
答案 0 :(得分:3)
我做了很多工作来完成这项工作。我的角色模型是jboss-javaee6 Maven原型,它也使用Arquillian对远程JBoss 6服务器中的代码进行单元测试。我做了以下步骤:
添加arquillian.xml
我在src / test / resources中添加了Arquillian.xml:
<?xml version="1.0" encoding="UTF-8"?>
<arquillian xmlns="http://jboss.com/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">
<container qualifier="jbossas-remote" default="true">
<property name="httpPort">8080</property>
</container>
</arquillian>
收缩WebArchive而不是JavaArchive
使用return Shrinkwrap.create( WebArchive.class, "test.war")
代替JavaArchive.class
,方法addAsWebInfResource()
方法可用,我可以在其中添加空的 beans.xml 。
调整pom.xml以减少CLASSPATH长度
Eclipse不断打破javaw.exe,发出 CreateProcess error = 87 消息。这是因为CLASSPATH对于控制台命令来说太长了。由于依赖 jboss-as-client 添加了Bazillions的依赖项,我将其更改为 jboss-as-profileservice-client ,它工作正常且依赖性较低。
另一个重要的事情是在 src / test / resources 目录中有一个 jndi.properties 文件,如Arquillian文档中所述。但这就是这种情况。我想arquillian.xml有所不同 - 文档中从未提及过这个文件,只是在原型中看到了它。
这是我用于远程JBoss测试的Maven配置文件:
<profile>
<id>jbossas-remote-6</id>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-jbossas-remote-6</artifactId>
<version>1.0.0.Alpha5</version>
</dependency>
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>2.0.0.Final</version>
<type>pom</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.jbossas</groupId>
<artifactId>jboss-as-profileservice-client</artifactId>
<version>6.0.0.Final</version>
<type>pom</type>
</dependency>
</dependencies>
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
</testResource>
</testResources>
</build>
我希望我的答案对某人有用。 :)
答案 1 :(得分:0)
注意还有一个与在Eclipse中运行测试相关的开放问题: https://issues.jboss.org/browse/ARQ-1037?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel