首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >@TestPropertySource窗口和linux文件分隔符

@TestPropertySource窗口和linux文件分隔符
EN

Stack Overflow用户
提问于 2020-07-01 19:51:29
回答 3查看 214关注 0票数 0

我有一个以以下声明开头的JUnit测试类

代码语言:javascript
运行
复制
@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = { 
        "cache.working.dir=./src/test/resources/cacheDirRepository/" } )

如何在基于linux的文件分隔系统('/')和Windows基文件分隔系统('\')上启动这个测试类?

提前谢了,

EN

回答 3

Stack Overflow用户

发布于 2020-07-01 20:55:51

放置以下内容

//平台无关,可以安全地在Linux和Windows上使用

代码语言:javascript
运行
复制
"cache.working.dir=."+File.separator+"src"+File.separator+"test"+File.separator+"resources"+File.separator+"cacheDirRepository"
票数 1
EN

Stack Overflow用户

发布于 2020-07-03 13:48:01

好的。我分享我的最后一个解决方案。也许还有一个更聪明的。我很高兴知道..。

3项行动:

  1. 我将使用占位符在运行时处理我的注释。我的注释的声明是用文件分隔符占位符.

参数化的。

代码语言:javascript
运行
复制
@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = { "cache.working.dir=." + 
                                        "${file_separator}" + "src" +
                                        "${file_separator}" + "test" + 
                                        "${file_separator}" + "resources" + 
                                        "${file_separator}" + "cacheDirRepository" + 
                                        "${file_separator}", ...

  1. 我在容器中声明了一个特定的bean来处理这些占位符.

代码语言:javascript
运行
复制
    @Bean
    public static PropertySourcesPlaceholderConfigurer propertiesResolver() {
        return new PropertySourcesPlaceholderConfigurer();
    }

  1. 最后,我在运行时将与os相关的文件分隔符char作为JVM参数

传递。

适用于Unix/MacOsX

代码语言:javascript
运行
复制
mvn clean install -DargLine="-Dfile_separator=/"

Windows操作系统

代码语言:javascript
运行
复制
mvn clean install -DargLine="-Dfile_separator=\\"
票数 1
EN

Stack Overflow用户

发布于 2020-07-01 19:58:26

java.io.File包有一些变量,您可以使用它们来解析它:

代码语言:javascript
运行
复制
File.separator // use '/' in linux and '\' in windows
File.separatorChar // use '/' in linux and '\' in windows
File.pathSeparator // use ':' in linux and ';' in windows
File.pathSeparatorChar // use ':' in linux and ';' in windows
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62684382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档