maven-2 - Junit 运行时不选择文件 src/test/resources。对于某些依赖 jar 所需的文件

标签 maven-2 resources junit testing surefire

我面临一个问题,测试/资源没有被选中,而是 jar 的主要/资源被选中

场景是这样的:Myproject src/test/resources --- 有 config.xml w abc.jar 应该需要它,它是 Myproject 中的依赖项。

当为 Myproject 运行测试用例时,它会加载 abc.jar 的 config.xml 而不是 Myproject test/resources。 - 我需要知道 maven 选择资源的顺序。 - 或者我无法尝试。

谢谢。

最佳答案

来自 target/tests-classes 的文件(默认情况下)包含在测试类路径的开头。因此,在运行测试时,来自 src/main/resourcessrc/test/resources 的资源都在类路径中,但后者优先于前者。换句话说,如果您在 src/main/resourcessrc/test/resouces 中有一个 config.xml:

  • src/main/resources/config.xml 将被打包到最终的工件中 but
  • src/test/resources/config.xml 运行测试时会用到

如果这不是您遇到的情况,则一定是其他地方有错误。

如果您想说服自己可以运行 mvn -X test,这将打印测试类路径。你会看到这个类路径由(按此顺序)组成:

  • 目标/测试类
  • 目标/类
  • 项目jar
  • 依赖项(包括具有测试范围的依赖项)

关于maven-2 - Junit 运行时不选择文件 src/test/resources。对于某些依赖 jar 所需的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2764723/

相关文章:

maven-2 - Maven Java EE 和模块项目 pom

spring-boot - cobertura 支持 java 8 吗?因为我想使用 java 8 lambda 表达式,它给了我一个错误

gradle - 从Gradle任务中的另一个项目复制文件

java - 管理 Java 应用程序中的字符串资源 - 单例?

java - 在源树而不是包中运行所有测试

java - 查看实际的 Maven 调用

maven-2 - 使用 maven 自动部署保存 Netbeans 企业项目

javascript - 在不牺牲 CPU 资源的情况下在 JavaScript web worker 中休眠

java - 如何覆盖 Mockito 中 unstubbed void 方法的默认行为?

java - 使用 IBM MobileFirst Platform Foundation 生成的 Android 应用程序中的单元测试 Java 代码