gpt4 book ai didi

java - Maven 项目中测试资源的公共(public)位置

转载 作者:行者123 更新时间:2023-11-30 07:22:34 26 4
gpt4 key购买 nike

我正在准备一个测试环境。对于我的项目。
我有一堆 Maven 项目,其中一些项目使用通用配置进行 spring beans 测试 (test-context.xml)。当我在每个项目的 src\test\resources 中进行此配置时,所有测试都有效。当我想将该配置移动到一个单独的项目 (project-test) 以消除每个项目中的重复时,我得到一个异常:

Caused by: java.io.FileNotFoundException: class path resource [test-context.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:157)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:328)
... 39 more
  • 我在带有测试的项目中向 project-tests 添加了 Maven 依赖项
  • test-context.xml 没有进入target 目录
  • 当我将我的资源放在 src/main/resources 而不是 src/test/resources 时,它起作用了

从另一个项目添加测试资源以使其在 TestNG 测试中可见的方法是什么?
在这种情况下,将它移动到 src/main/resources 是最好的方法吗?

最佳答案

您不能简单地依赖于项目测试并期望来自 src/test/resources 的资源能够通过。您需要从您的 project-tests 项目构建一个测试 JAR。幸运的是,这非常简单,并且在另一个 SO 线程 Sharing Test code in Maven 中得到了很好的解释

基本思想是生成一个带有分类器的 project-tests 测试 jar 文件,然后将其用作项目中的依赖项。这种方法是您尝试执行的操作的最佳实践。

关于java - Maven 项目中测试资源的公共(public)位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12599626/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com