我在Maven项目B(它是项目A的子项)中的测试代码类似于从Maven获取JUnit测试用例中最简单的文件的方法
String filePath = "src/main/webapp";
//do something with the filePath
当我从child(即B级)运行项目时,上面的测试用例运行正常但是当我运行时来自父项目A(即,在父级别进行mvn安装),这会失败,因为很明显在父级别下没有名为“src/main/webapp”的文件夹(但是在子级别可用)。
我知道我可以做一些编码检查测试用例是否从父/子模块运行,但显然我想知道其他在遇到这个问题时做了什么?
不,我不能使用类路径(出于各种无聊的原因)。
我也试过相对路径,但后来测试用例开始知道太多了。实际上有解决方案吗?
UPDATE(12/Feb) - 我在webapp文件夹下有一个web.xml,并使用该web.xml在测试用例中创建一个jetty服务器。理想情况下,src/main/webapp不会放在类路径中。 WAR插件使用它来打包WAR。现在,我尝试了另一种方法,我将web.xml放在src/main/resource/console-webapp/WEB-INF/web.xml目录中,并更改了maven war插件中的webXml属性。这似乎解决了我的问题。但是,在输出WAR中我有一个web.xml和另一个冗余web.xml(由于它在类路径中而被复制)。
我尝试过“packageExcludes”和“webResources/excludes”,并获得了war插件,省略了第二个web.xml,但仍然复制了目录“console-webapp”(尽管是空的)。有没有办法告诉maven war插件完全忽略一个目录(即什么是蚂蚁模式?)
Maven 2测试是在单独的进程中的module目录下运行的。这意味着“src/main/webapp”应该可以很好地工作,无论它从哪里被调用。你在用surefire插件进行测试吗? JUnit/TestNG?你有没有禁用forfire? – artemb 2010-02-11 12:19:11