Ich versuche, einen sehr einfachen REST Web-Service zu testen:@ArquillianResource null zurück URL
- eine
jboss-web.xml
Datei eine
Application
Klasse:@ApplicationPath("/") public class Application extends javax.ws.rs.core.Application {}
eine
Resource
Klasse:@Path("/") public class Resource { @GET String get() { return "OK"; } }
Meine Test-Klasse verwendet die @ArquillianResource
Anmerkung:
public class ResourceTest extends Arquillian {
@ArquillianResource URL baseURL;
@Deployment
public static WebArchive create() {
return ShrinkWrap.create(WebArchive.class)
.addClasses(Resource.class, Application.class);
}
@Test public void get() { /* test Resource here */ }
}
Ich habe versucht, mit @Deployment(testable = false)
, @Deployment(Testable = true)
, habe ich versucht, auch @RunAsClient
Anmerkung zu dem Testverfahren hinzuzufügen.
Aber ich bekomme immer die gleiche Ausnahme:
java.lang.RuntimeException: Could not lookup value for field java.net.URL com.assylias.test.arquillian.ResourceTest.baseURL
at org.jboss.arquillian.test.impl.enricher.resource.ArquillianResourceTestEnricher.enrich(ArquillianResourceTestEnricher.java:71)
at org.jboss.arquillian.test.impl.TestInstanceEnricher.enrich(TestInstanceEnricher.java:55)
at org.jboss.arquillian.container.test.impl.ClientTestInstanceEnricher.enrich(ClientTestInstanceEnricher.java:51)
[...]
Caused by: java.lang.RuntimeException: Provider for type class java.net.URL returned a null value: org.jboss.arqui[email protected]babafc2
at org.jboss.arquillian.test.impl.enricher.resource.ArquillianResourceTestEnricher.lookup(ArquillianResourceTestEnricher.java:133)
at org.jboss.arquillian.test.impl.enricher.resource.ArquillianResourceTestEnricher.enrich(ArquillianResourceTestEnricher.java:67)
Als Referenz pom.xml:
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.jboss.arquillian</groupId>
<artifactId>arquillian-bom</artifactId>
<version>1.1.11.Final</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.container</groupId>
<artifactId>arquillian-weld-ee-embedded-1.1</artifactId>
<version>1.0.0.CR9</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.testng</groupId>
<artifactId>arquillian-testng-container</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.weld</groupId>
<artifactId>weld-core</artifactId>
<version>2.2.16.Final</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Könnte es sein, dass ich einen eingebetteten Container anstelle eines Remote-Containers verwende? – assylias