如何让maven使用测试资源

时间:2011-06-07 15:06:58

标签: java testing maven

当我使用命令:mvn test时,maven使用主要资源而不是src / test / resources中的测试资源。

如何让maven使用测试资源而不是主要资源?

编辑:我使用Classloader查找我的资源。类加载器可以从我的src / test / resources目录中找到资源,但它首先在src / main / java中查找资源。

ClassLoader loader = Thread.currentThread().getContextClassLoader();
InputStream file =loader.getResourceAsStream("resource.xml");

或者在运行maven命令时是否可以使用任何属性来优先考虑类路径?

编辑2:我已经发现了问题,它确实从测试/资源加载测试,但我的测试涉及部署webapp(集成测试),当webapp访问资源时,它使用src / main /资源。有没有办法改变类路径的顺序,或者为一个部署在jetty容器中的WAR使一个在另一个之前?

2 个答案:

答案 0 :(得分:6)

请检查目标/测试类目录中的 resource.xml 。 你的文件应该在这里。如果你找到这个文件,我认为同样的名字是问题所在。尝试将文件重命名为例如test-resource.xml。如果test-classes目录中不存在该文件,则应在maven pom.xml中配置资源管理。使用maven-resouce-plugin。 希望它有所帮助。

答案 1 :(得分:4)

你不能给它另一个名字吗?
加载程序不知道您的 resource.xml 位于src/main/resourcessrc/test/resources,它只是一个要查找的路径。我认为这不是Maven的问题,这就是Loader应该如何工作的。从Maven开始,您希望在进行测试阶段时从src/main/resources丢弃所有类/资源吗?