Hello,
I have a project that has the following structure:
ROOT
-> parent
-> build-tools
-> service1
-> service2
-> service3 ...
The parent holds information for versions, plugins, etc. Now I have integration tests inside the services that fail when I run them together with @RunAsClient. I created a minimal rest endpoint and a test to check that:
@Path("cc")
public class CcTestResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public Response getVersion() {
return Response.ok("Hello World").build();
}
}
The integration test looks like this:
@RunWith(Arquillian.class)
@RunAsClient
public class CcTestResourceIT {
@Deployment
public static Archive<?> createDeployment() {
PomEquippedResolveStage pomFile = Maven.resolver().loadPomFromFile("pom.xml");
WebArchive archive = ShrinkWrap.create(WebArchive.class)
.addAsLibraries(pomFile.resolve("org.assertj:assertj-core").withTransitivity().asFile())
.addClasses(JaxRsActivator.class, CcTestResource.class)
.addAsResource("log4j2.xml")
.addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml");
return archive;
}
@ArquillianResource
private URL baseURI;
@Test
public void getArticlesByEan() throws Exception {
Response response = ClientBuilder.newClient()
.target(getCcTestResourceURI())
.request(MediaType.TEXT_PLAIN)
.get();
assertThat(response.getStatusInfo()).isEqualTo(Status.OK);
}
private URI getCcTestResourceURI() throws URISyntaxException {
return UriBuilder.fromUri(baseURI.toURI()).path("api").path("cc").build();
}
}
The problem is: tests that use the ClientBuilder and @RunAsClient result in 0% coverage. When I remove @RunAsClient it works.
Is there a way to keep @RunAsClient and use the ClientBuilder?
Thanks in advance.