Suj*_*jen 14 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");
Run Code Online (Sandbox Code Playgroud)
或者在运行maven命令时是否可以使用任何属性来优先处理类路径?
编辑2:我已经发现问题,它确实从测试/资源加载测试,但是我的测试涉及部署webapp(集成测试),当webapp访问资源时,它使用src/main/resources.有没有办法改变类路径的顺序,或者为一个部署在jetty容器中的WAR使一个在另一个之前?
请检查您的target/test-classes目录中的resource.xml.你的文件应该在这里.如果你找到这个文件,我认为同样的名字是问题所在.尝试将文件重命名为例如test-resource.xml.如果test-classes目录中不存在该文件,则应在maven pom.xml中配置资源管理.使用maven-resouce-plugin.希望能帮助到你.
你不能给它起另一个名字吗?
加载器不知道您的resource.xml位于src/main/resourcesor中src/test/resources,它只是要查找的路径。我认为问题不是 Maven,这就是 Loader 应该如何工作的。从 Maven 中,您是否希望在测试阶段丢弃所有类/资源?src/main/resources