2016-12-07 2 views
0

Я пытаюсь протестировать устаревшее приложение с использованием TestNG и Arquillian. Существует ограничение, из-за которого мне нужно иметь два разных метода, аннотированных с помощью @Deployment.Несколько методов развертывания в одном тестовом классе

Метод 1 (для развертывания только тестовый код и запустить его с приложением, уже развернута и работает в WildFly 10)

@Deployment 
    public static WebArchive createDeployment() { 
     WebArchive war = ShrinkWrap.create(WebArchive.class).addClass(Test.class) 
       .addAsManifestResource(new File("jboss-deployment-structure.xml")) 
       .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); 
     return war; 
    } 

Метод 2 (для развертывания всего приложения вместе с тестовым кода в удаленный WildFly 10 сервер)

@Deployment 
    public static EnterpriseArchive createEARDeployment(){ 
     EnterpriseArchive ear = ShrinkWrap.createFromZipFile(EnterpriseArchive.class, new File("some_archive.ear")) 
       .addAsModule(Testable.archiveToTest(ShrinkWrap.create(WebArchive.class, "test.war") 
          .addClass(SoftCountFacadeTest.class) 
          .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"))); 
     return ear; 
    } 

Мое требование заключается в том Arquillian должен иметь возможность выбрать один из этих методов развертывания на основе некоторой конфигурации. На данный момент я комментирую метод развертывания, который не нужно запускать. @ Deployment.order, заданный here, бесполезен, так как все развертывания все еще будут работать, только их порядок выполнения может контролироваться.

Любая помощь очень ценится.

ответ

1

может быть, вы можете попробовать (вы должны заполнить в состоянии уха самостоятельно):

@Deployment 
public static Archive<?> createDynamicDeployment() { 
    if(<ear condition>) { 
    EnterpriseArchive ear = ShrinkWrap.createFromZipFile(EnterpriseArchive.class, new File("some_archive.ear")) 
      .addAsModule(Testable.archiveToTest(ShrinkWrap.create(WebArchive.class, "test.war") 
         .addClass(SoftCountFacadeTest.class) 
         .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"))); 
    return ear; 
    } else { 
    WebArchive war = ShrinkWrap.create(WebArchive.class).addClass(Test.class) 
      .addAsManifestResource(new File("jboss-deployment-structure.xml")) 
      .addAsWebInfResource(EmptyAsset.INSTANCE, "beans.xml"); 
    return war; 
    } 
} 
+0

Я пытался найти решение изнутри функциональных возможностей ShrinkWarp и Arquillian. Во всяком случае, это будет работать в моем случае. Большое спасибо :-) –

Смежные вопросы