当前位置: 首页 > 知识库问答 >
问题:

在Springs框架外运行gradle测试时找不到属性文件

苗森
2023-03-14

我试图从一个基于Gradle的项目中的Java类加载一个配置文件。我使用java.util.属性来加载一个相对于项目的文件(所以我不需要硬编码配置文件的路径)。

我研究了一个几乎完全相同的问题,运行gradle测试时找不到属性文件,但是,我没有使用Springs框架,所以答案看起来非常不同。

我当前的代码是这样的:

String filename = "config.properties";

input =  Config.class.getResourceAsStream(filename);
if (input == null) {
    throw new FileNotFoundException("config " + filename + " not found");
} 

我已经把我的配置文件放在了项目的几乎每个文件夹中。我使用了默认的gradle resources文件夹src/test/resources,但运气不好。

配置文件是否应该放在。java文件。类文件(可能不会发生,因为.class输出在gradle中是动态的)或在resources文件夹中?

谢谢你的帮助!

共有1个答案

盛跃
2023-03-14

使用代码Config。班getResourceAsStream(“config.properties”) ,您正在查找资源配置。属性与您的类位于同一个包中。指定给类的路径。getResourceAsStream(name)与类在包层次结构中的位置有关。

如果将资源放在src/test/resources下,那么它将位于最终jar的根目录下,因此您可以在/config中查找它。属性,使用绝对路径。

 类似资料:
  • 我正在使用gradle来构建和测试我的应用程序。我使用命令 但是当从eclipse中运行时,测试工作完美,当使用gradle运行时失败。我的测试定义如下,它找不到的属性文件在这两个文件夹中: /home/user/Development/git/myproject/src/main/java/com/mycompany/config/home/user/Development/git/myproj

  • 我试着寻找类似的问题,但没有成功。 谢谢!

  • 当我在Kotlin中的嵌套类中指定测试时,如下所示。。。 ...当使用gradle运行测试时,JUnit无法识别它。只有被找到并运行。 我使用的是JUnit 5.1、Kotlin 1.2.30和Gradle 4.6。

  • 在运行spock测试时,我需要帮助模拟一个类及其从yaml文件获得的数据。我有一个用groovy编写的microservice,它根据yaml文件中的字段名参数进行字段映射。 我有一个projectProperties类,它从yaml文件中提取数据。 这个类将从 /src/main/resourcesapplication.yaml文件中提取变量值 当我运行spock测试时,它无法从project

  • 在我的Gradle项目中,我有一个非常简单的JUnit测试: 当我在IntelliJ中运行测试时,我会得到一个任务列表,其中包含构建成功的消息。例如: 这不应该发生,因为我期待测试失败。我还得到一条消息“测试事件没有收到”。 编辑:添加了项目结构的截图。

  • 当我用Eclipse运行Python-Selenium测试时,它是有效的。如果我在Jenkins中添加Python测试作为批处理文件,我总是会得到这个错误: 我在windows中正确设置了Python的路径。有人能帮忙吗?谢谢你。 我这样设置路径: 我在Jenkins中使用执行Windows批处理命令运行批处理文件: 批处理文件是: