测试Arquillian 1.9.final TOMCAT-EMBED-7容器,我在创建WebArchive进行测试时遇到了可疑的结果。
在/ src / main / resources中,我有几个配置文件,我 不 在运行集成测试时想要使用,而我想提供命名的存储在/ src / embed-itest / resources中。
org.jboss.shrinkwrap.api.Filter x = Filters.exclude(".*Test.*|.*xml|.*properties");
WebArchive webArchive = ShrinkWrap
.create(WebArchive.class, "mytest.war")
.addPackages(true, x, "com.myapp")
//and some other additions
然后在srhinkwrap过程结束时,我添加了我想要使用的特定测试文件:
File n = new File("src/embed-itest/resources/test-log4j.properties");
webArchive.addAsResource(n,"log4j.properties");
但是,该行为仍在运行,就好像它正在使用/src/main/resources/log4j.properties。我已经验证了_DEFAULT_DEFAULT_mytest.war确实将test-log4j.properties内容作为log4j.properties,但运行测试的行为是/src/main/resources/log4j.properties。 (对于其他配置文件也是如此,例如我试图覆盖的camelContext.xml)。
有人有什么见解吗?我希望能够利用创建自定义WebArchive的功能,使用存档中的特定文件进行更精确的测试,但实际行为似乎就像是标准'创造了战争限制,我认为这是一个伟大的arquillian能力。
答案 0 :(得分:1)
我认为问题是你正在使用Tomcat嵌入式方法,这意味着你要与Tomcat实例共享测试的JVM。我建议您尝试使用托管或远程模式。