[英]Arquillain/Shrinkwrap how to add whole META-INF directory?
我想使用Arquillian + Selenium来测试我的JSF页面。 我的项目结构如下:
/src/main/java - my java classes
/src/main/resources
/src/main/resources/META-INF - all imgs, css, js and custom composite JSF components
/src/main/webapp/pages - my xhtml pages
/src/main/webapp/WEB-INF - descriptors, JSF template
我想用我所有需要的东西,即所有资源,我要测试的特定xhtml页面,WEB-INF目录,构建一个测试部署档案。 除META-INF资源外,我设法复制了所有这些文件。 有什么方法可以告诉收缩包装将整个META-INF目录带入部署中? 谢谢。
另一种解决方案(可以在http://arquillian.org/guides/functional_testing_using_graphene/中找到)
archive.merge(ShrinkWrap.create(GenericArchive.class)
.as(ExplodedImporter.class)
.importDirectory(WEBAPP_SRC).as(GenericArchive.class),
"/", Filters.include("META-INF\\.*\\.xml"));
您可以执行以下操作:
File[] files = new File("src/main/resources/META-INF").listFiles();
WebArchive war = ShrinkWrap.create(WebArchive.class, "test.war");
for (File file : files) {
war.addAsManifestResource(file);
}
war.writeTo(System.out, Formatters.VERBOSE);
假设您在src / main / resources / META-INF中具有以下文件:
beans.xml
configuration1.xml
configuration2.xml
...它将输出:
test.war:
/META-INF/
/META-INF/beans.xml
/META-INF/configuration2.xml
/META-INF/configuration1.xml
如果您有嵌套的多模块项目,则可能需要调整传递给File构造函数的路径。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.