【发布时间】:2012-08-13 21:44:40
【问题描述】:
我目前正在进行一项 JUnit 测试,该测试检查负责从/向某个文件加载/保存流程配置的功能。鉴于资源中存在特定的配置文件,该功能会从文件中加载参数。否则,该功能会尝试创建新的配置文件并保留类中编码的默认配置。现在我正在使用 .class.getResource() 方法来检查配置文件是否存在,并检索必要的信息。这种方法被证明在 maven 的“test-class”和“class”目录中都可以正常工作。但是,当文件不存在时,我在尝试保存默认配置时遇到问题,即 .class.getResource() 方法返回 null,因为资源尚不存在。这使我无法构建应保存文件的目标资源目录(取决于上下文)。
有没有办法对我的功能进行编码以评估特定对象是作为测试执行还是在生产中执行?更准确地说,我如何构建资源文件的相对路径以指向生产资源(../classes/...)或测试资源(../test-classes/..),具体取决于执行模式目前是哪个项目?
我的问题有点类似于下面的How should I discover test-resource files in a Maven-managed Java project?,但我认为它的不同足以保证新的线程。
【问题讨论】: