これは、TestMethod 内から Deployer API を使用して Arquillian で行うことができます。
まず、@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
}