Вы можете сделать это в Arquillian, используя API Deployer из вашего TestMethod.
Сначала вы должны определить @Deployment, чтобы Arquillian не управлял им:
@Deployment(name = "X", managed = false)
public static WebArchive manualDeployment() {
return ShrinkWrap.create(WebArchive.class)....
}
Следующим шагом будет внедрение Deployer:
@ArquillianResource
private Deployer deployer;
Затем из вашего метода @Test вы можете вызвать:
@Test
public void shouldBeAbleToDeploy() {
deployer.deploy("X")
}
Если ваше развертывание X настроено для тестирования в контейнере (@ Deployment.testable = true (поведение по умолчанию)), вы можете запустить следующий метод @Test внутри только что развернутого развертывания.
@Test
public void shouldBeAbleToDeploy() {
deployer.deploy("X");
}
@Test @OperateOnDeployment("X")
public void shouldNowBeInDeploymentX() {
// we're now inside X
}
По умолчанию JUnit TestMethods выполняются в случайном порядке, но интеграция Arquillian JUnit предоставляет аннотацию @InSequence (n), которую можно использовать для принудительного определения порядка выполнения.
@Test @InSequence(1)
public void shouldBeAbleToDeploy() {
deployer.deploy("X");
}
@Test @InSequence(2) @OperateOnDeployment("X")
public void shouldNowBeInDeploymentX() {
// we're now inside X
}