Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 如何使SpringBoot应用程序和测试使用相同的路径解析服务?_Spring Boot_Intellij Idea_Junit - Fatal编程技术网

Spring boot 如何使SpringBoot应用程序和测试使用相同的路径解析服务?

Spring boot 如何使SpringBoot应用程序和测试使用相同的路径解析服务?,spring-boot,intellij-idea,junit,Spring Boot,Intellij Idea,Junit,自定义类PathConfigurationService将运行应用程序的当前路径设置为C:\project。但由于测试位于模块x内部,它的user.dir系统属性与主应用程序不同,因此返回C:\project\moduleX,从而使PathConfigurationService生成到外部文件夹数据的错误路径如何使测试拾取正确的数据文件夹路径 - data - fileA - fileB - core -src/main/java -PathConfig

自定义类
PathConfigurationService
将运行应用程序的当前路径设置为
C:\project
。但由于测试位于模块x内部,它的
user.dir
系统属性与主应用程序不同,因此返回
C:\project\moduleX
,从而使
PathConfigurationService
生成到外部文件夹
数据的错误路径
如何使测试拾取正确的
数据
文件夹路径

- data
  - fileA
  - fileB
- core
  -src/main/java
               -PathConfigurationService
  -src/test/java
               - AbstractTest
 - moduleX
   -src/test/java
              - Test(extending AbstractTest)
ModuleX测试:

@ActiveProfiles("test")
@SpringBootTest(classes = SpringBootApplication11.class)
@ContextConfiguration(classes = SpringBootApplication11.class,
                      initializers = ConfigFileApplicationContextInitializer.class)
class Test extends AbstractTest {
    @Autowired
    SpringBootApplication11 app;
}
抽象测试:

@ExtendWith(SpringExtension.class)
public abstract class AbstractTest {
    @Test
    void test() {
    }
}

您应该使用资源文件夹

事实上,这将允许您以相同的方式从源和测试访问数据文件夹

项目的结构可能如下所示:

Project
|-- pom.xml
`-- src
    `-- main
        `-- java
        `-- resources
    `-- test
        `-- java
        `-- resources

在IntelliJ运行/调试配置中,从
工作目录
输入框中删除
$MODULE\u WORKING\u DIR$
解决了此问题。

数据
文件夹位于资源和打包jar之外。这是一项要求。