【问题标题】:how to make maven use test resources如何让maven使用测试资源
【发布时间】:2011-09-10 04:08:19
【问题描述】:

当我使用命令: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/资源。对于部署在码头容器中的 WAR,有没有办法更改类路径的顺序或使一个优先于另一个?

【问题讨论】:

  • 请不要再问同样的问题,用任何相关的更新来编辑您现有的问题,而不是让您的问题有问题。谢谢。

标签: java testing maven


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你不能给它另一个名字吗?
    Loader 不知道您的 resource.xmlsrc/main/resourcessrc/test/resources 中,它只是寻找的路径。我认为问题不是 Maven,这就是 Loader 应该如何工作的。在 Maven 中,您是否希望在进行测试阶段时丢弃来自 src/main/resources 的所有 类/资源

    【讨论】:

    • 不知道。也许你可以在你的测试类中配置surefire或手动加载资源。
    • 我已经找到了问题所在,它确实从测试/资源中加载了测试,但是我的测试涉及部署一个 webapp(集成测试),并在 webapp 访问它使用的资源时从那里 src/主要/资源。对于部署在码头容器中的 WAR,有没有办法更改类路径的顺序或使一个优先于另一个?我会更新我的问题
    猜你喜欢
    • 1970-01-01
    • 2011-02-28
    • 2014-08-02
    • 2011-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多