一次测试多种部署方式class
Multiple deployment methods in one test class
我正在尝试使用 TestNG 和 Arquillian 测试遗留应用程序。由于存在一个约束,我需要使用 @Deployment 注释两种不同的方法。
方法 1(仅针对应用程序部署测试代码 运行 它已经部署并且 运行ning 在 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 应该能够根据一些配置选择这些部署方法中的任何一种。暂且把不用运行的部署方式注释掉。鉴于 here,@Deployment.order 没有用,因为所有部署仍然 运行 只能控制它们的执行顺序。
非常感谢任何帮助。
也许你可以试试(需要自己填写耳朵情况):
@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;
}
}
我正在尝试使用 TestNG 和 Arquillian 测试遗留应用程序。由于存在一个约束,我需要使用 @Deployment 注释两种不同的方法。
方法 1(仅针对应用程序部署测试代码 运行 它已经部署并且 运行ning 在 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 应该能够根据一些配置选择这些部署方法中的任何一种。暂且把不用运行的部署方式注释掉。鉴于 here,@Deployment.order 没有用,因为所有部署仍然 运行 只能控制它们的执行顺序。
非常感谢任何帮助。
也许你可以试试(需要自己填写耳朵情况):
@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;
}
}