Развертывание артефактов во время тестового случая - JBoss AS - PullRequest
1 голос
/ 29 ноября 2011

У меня очень специфический тестовый пример:

  1. Мне нужно развернуть JAR
  2. Провести тестирование
  3. Развернуть еще один JAR
  4. Пройти еще тестирование

JAR-файлы должны быть развернуты в определенном порядке (я не могу развернуть оба до вызова метода теста)

Знаете ли вы, как выполнить такой сценарий в какой-то среде, подобной JUnit? Я знаю, что 1. может быть определенно сделано в Arquillian, но я не знаю, есть ли возможность выполнить другое развертывание внутри тестового метода.

Ответы [ 2 ]

3 голосов
/ 09 декабря 2011

Вы можете сделать это в 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
}
0 голосов
/ 29 ноября 2011

Тестовый метод только что выполнен - ​​также вы должны иметь возможность развертывания оттуда. Если у вас уже есть настроенное депонирующее вещество через фазу тестирования, легко ли это работает из теста

...