dependencies {
providedCompile 'javax:javaee-api:7.0'
testCompile 'org.arquillian.container:arquillian-chameleon-junit-container-starter:1.0.0.CR2'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.10.0'
}
07 April 2018
In a previous post I have already described how to use Arquillian Chameleon to simplify the Arquillian config.
With the latest improvements that are described here in more detail, it is now possible to minimize the required configuration:
Only a single dependency
No arquillian.xml
As before, I assume Gradle 4.6 with enableFeaturePreview('IMPROVED_POM_SUPPORT')
in the settings.gradle
.
With this, we only have to add a single dependency to use arquillian:
dependencies {
providedCompile 'javax:javaee-api:7.0'
testCompile 'org.arquillian.container:arquillian-chameleon-junit-container-starter:1.0.0.CR2'
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.10.0'
}
The used container only needs to be defined via the @ChameleonTarget
annotation.
Also note the new @RunWith(ArquillianChameleon.class)
. This not the regular @RunWith(ArquillianChameleon.class)
.
@RunWith(ArquillianChameleon.class)
@ChameleonTarget("wildfly:11.0.0.Final:managed")
public class GreetingServiceTest {
@Deployment
public static WebArchive deployService() {
return ShrinkWrap.create(WebArchive.class)
.addClass(Service.class);
}
@Inject
private Service service;
@Test
public void shouldGreetTheWorld() throws Exception {
Assert.assertEquals("hello world", service.hello());
}
}
There is also support now for not having to write the @Deployment
method. Up to now, only for maven-build and specifing a local file.