public interface Deployer
Deployment
's during test execution.
By default Deployment
's are managed by Arquillian, which mean Arquillian will perform the deploy and undeploy
operations for you automatically in the background. In some cases you might want a more fine grained control over the
deployment lifecycle. e.g. You might need to test some kind of auto discovery feature of your application that happens
during startup?
In this case you can define a Deployment
to not be Deployment.managed()
= false and
use the Deployer to manually deploy and undeploy them at your own will.
Usage Example:
@Deployment(name = "X", managed = false)
public static WebArchive create() {
return ShrinkWrap.create(WebArchive.class);
}
@ArquillianResource
private Deployer deployer;
@Test @RunAsClient
public void shouldDeployX() {
deployer.deploy("X");
}
Modifier and Type | Method and Description |
---|---|
void |
deploy(String name)
Deploy the named deployment.
|
InputStream |
getDeployment(String name)
Get the Deployment byte content.
|
void |
undeploy(String name)
UnDeploy a named deployment.
|
void deploy(String name)
NOTE: If you want to run a test in a container, you cannot deploy a deployment from this test on the same container that the test is running in.
This is NOT correct for a test running in a container:
@Test @OperatesOnDeployment("X")
public void deployTest() {
deployer.deploy("X");
}
If you run the test in this way for the very first deployment the test will be launched on the client side. If you
try to redeploy
a deployment from the container an exception will be thrown. In these cases please use the annotation RunAsClient
either
on the test method or on the whole test class to be sure, that the test is running on the client side.
NOTE: You can still (re)deploy a deployment on a different container than the test is running in.
This IS correct for a test running in a container:
@Test @OperatesOnDeployment("X")
public void deployTest() {
deployer.deploy("Y");
}
name
- The name of the deploymentInputStream getDeployment(String name)
name
- The name of the Deployment as defined by Deploymentvoid undeploy(String name)
name
- The name of the deploymentCopyright © 2017 JBoss by Red Hat. All rights reserved.