2017-08-16 70 views
-2

我在Java EE的 初学者我有一个的IntelliJ IDE小行家Web项目。 部署的服务器是WildFly。 我想对类BookRepositoryTest进行Arquillian Junit测试。 的pom.xml的Arquillian JUnit测试不工作

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
 
<modelVersion>4.0.0</modelVersion> 
 
<groupId>com.pluralsight.bookstore</groupId> 
 
<artifactId>bookstore-back</artifactId> 
 
<version>1.0</version> 
 
<packaging>war</packaging> 
 
<name>bookstore-back</name> 
 
<properties> 
 
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir> 
 
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
 
<!-- Test --> 
 
<version.junit>4.12</version.junit> 
 
<version.arquillian>1.1.13.5</version.arquillian> 
 
<version.arquillian.wildfly>2.0.2.Final</version.arquillian.wildfly> 
 
<version.shrinkwrap>1.2.6</version.shrinkwrap> 
 
<!-- Plugins --> 
 
<version.surefire.plugin>2.19.1</version.surefire.plugin> 
 
</properties> 
 
<dependencyManagement> 
 
<dependencies> 
 
<dependency> 
 
<groupId>org.arquillian</groupId> 
 
<artifactId>arquillian-universe</artifactId> 
 
<version>${version.arquillian}</version> 
 
<type>pom</type> 
 
<scope>import</scope> 
 
</dependency> 
 
</dependencies> 
 
</dependencyManagement> 
 
<dependencies> 
 
<dependency> 
 
<groupId>javax</groupId> 
 
<artifactId>javaee-web-api</artifactId> 
 
<version>7.0</version> 
 
<scope>provided</scope> 
 
</dependency> 
 
<!-- TEST --> 
 
<dependency> 
 
<groupId>junit</groupId> 
 
<artifactId>junit</artifactId> 
 
<version>${version.junit}</version> 
 
<scope>test</scope> 
 
</dependency> 
 
<dependency> 
 
<groupId>org.arquillian.universe</groupId> 
 
<artifactId>arquillian-junit</artifactId> 
 
<scope>test</scope> 
 
<type>pom</type> 
 
</dependency> 
 
<dependency> 
 
<groupId>org.wildfly.arquillian</groupId> 
 
<artifactId>wildfly-arquillian-container-remote</artifactId> 
 
<version>${version.arquillian.wildfly}</version> 
 
<scope>test</scope> 
 
</dependency> 
 
<dependency> 
 
<groupId>org.jboss.shrinkwrap</groupId> 
 
<artifactId>shrinkwrap-api</artifactId> 
 
<version>${version.shrinkwrap}</version> 
 
<scope>test</scope> 
 
</dependency> 
 
</dependencies> 
 
<build> 
 
<finalName>bookstore-back</finalName> 
 
<plugins> 
 
<plugin> 
 
<artifactId>maven-surefire-plugin</artifactId> 
 
<version>${version.surefire.plugin}</version> 
 
<configuration> 
 
<systemPropertyVariables> 
 
<arquillian.launch>arquillian-wildfly-remote</arquillian.launch> 
 
</systemPropertyVariables> 
 
</configuration> 
 
</plugin> 
 
<plugin> 
 
<groupId>org.apache.maven.plugins</groupId> 
 
<artifactId>maven-compiler-plugin</artifactId> 
 
<version>3.1</version> 
 
<configuration> 
 
<source>1.7</source> 
 
<target>1.7</target> 
 
<compilerArguments> 
 
<endorseddirs>${endorsed.dir}</endorseddirs> 
 
</compilerArguments> 
 
</configuration> 
 
</plugin> 
 
<plugin> 
 
<groupId>org.apache.maven.plugins</groupId> 
 
<artifactId>maven-war-plugin</artifactId> 
 
<version>2.3</version> 
 
<configuration> 
 
<failOnMissingWebXml>false</failOnMissingWebXml> 
 
</configuration> 
 
</plugin> 
 
<plugin> 
 
<groupId>org.apache.maven.plugins</groupId> 
 
<artifactId>maven-dependency-plugin</artifactId> 
 
<version>2.6</version> 
 
<executions> 
 
<execution> 
 
<phase>validate</phase> 
 
<goals> 
 
<goal>copy</goal> 
 
</goals> 
 
<configuration> 
 
<outputDirectory>${endorsed.dir}</outputDirectory> 
 
<silent>true</silent> 
 
<artifactItems> 
 
<artifactItem> 
 
<groupId>javax</groupId> 
 
<artifactId>javaee-endorsed-api</artifactId> 
 
<version>7.0</version> 
 
<type>jar</type> 
 
</artifactItem> 
 
</artifactItems> 
 
</configuration> 
 
</execution> 
 
</executions> 
 
</plugin> 
 
<plugin> 
 
<artifactId>maven-assembly-plugin</artifactId> 
 
<version>3.0.0</version> 
 
<configuration> 
 
<descriptorRefs> 
 
<descriptorRef>src</descriptorRef> 
 
</descriptorRefs> 
 
</configuration> 
 
</plugin> 
 
</plugins> 
 
</build> 
 
</project>
我arquillian.xml

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
 
<arquillian 
 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
     xmlns="http://jboss.org/schema/arquillian" 
 
     xsi:schemaLocation="http://jboss.org/schema/arquillian http://jboss.org/schema/arquillian/arquillian_1_0.xsd"> 
 

 
    <container qualifier="arquillian-wildfly-remote"/> 
 

 
</arquillian>

错误出把 了java.lang.RuntimeException:无法创建新的类实例组织.jboss.arquillian.test.impl.EventTestRunnerAdaptor

at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:166) 
at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:103) 
at org.jboss.arquillian.test.spi.TestRunnerAdaptorBuilder.build(TestRunnerAdaptorBuilder.java:52) 
at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:114) 
at org.junit.runner.JUnitCore.run(JUnitCore.java:137) 
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) 
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) 
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) 
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) 

所致:java.lang.reflect.InvocationTargetException 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 在sun.reflect .DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.jboss.arquillian.test.spi.SecurityActions.newInstance(SecurityActions.java:162 ) ... 8个 造成的:java.lang.IllegalArgumentException异常:无容器或组找到符合给定的预选赛:arquillian.xm升 在org.jboss.arquillian.container.impl.client.container.ContainerRegistryCreator.createRegistry(ContainerRegistryCreator.java:127) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.jboss.arquillian.core。 impl.ObserverImpl.invoke(ObserverImpl.java:96) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed( EventContextImpl.java:85) at org.jboss.arquillian.core.i mpl.ManagerImpl.fire(ManagerImpl.java:143) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.core.impl.ManagerImpl.bindAndFire( ManagerImpl.java:263) at org.jboss.arquillian.core.impl.InstanceImpl.set(InstanceImpl.java:74) at org.jboss.arquillian.config.impl.extension.ConfigurationRegistrar.loadConfiguration(ConfigurationRegistrar.java: 73) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java的.lang.reflect.Method.invoke(Method.java:498) 在org.jboss.arquillian.core.i mpl.ObserverImpl.invoke(ObserverImpl.java:96) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:103) at org.jboss.arquillian.core.impl.EventContextImpl.proceed( EventContextImpl.java:85) 在org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:143) 在org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.core.impl.ManagerImpl.start(ManagerImpl。Java的:288) 在org.jboss.arquillian.test.impl.EventTestRunnerAdaptor(EventTestRunnerAdaptor.java:63) ...... 13多个

测试忽略。

进程退出代码为-1

+1

如何在测试之前配置并启动WildFly?您正在使用远程容器适配器,因此您必须先安装服务器。如果您希望Arquillian负责管理您的服务器生命周期,请使用托管适配器。还要看看Arquillian Chameleon项目 - 大大简化了应用服务器的配置。 –

回答

0

完成我固定我的问题是在配置错误的限定符的名称。 我做 编辑配置 的Arquillian Junit的 中的Arquillian容器范围配置和我把“的Arquillian-wildfly远程” 这是预选赛的名称(在Arquillian.xml文件) 谢谢:)