Java @TestPropertySource windows和linux文件分隔符
我有一个JUnit测试类,从这个声明开始Java @TestPropertySource windows和linux文件分隔符,java,spring,junit,system-variable,Java,Spring,Junit,System Variable,我有一个JUnit测试类,从这个声明开始 @RunWith(SpringRunner.class) @SpringBootTest @TestPropertySource(properties = { "cache.working.dir=./src/test/resources/cacheDirRepository/" } ) 如何在基于linux的文件分隔符系统('/')和Windows基本文件分隔符系统('\')上启动此测试类 提前感谢,java.i
@RunWith(SpringRunner.class)
@SpringBootTest
@TestPropertySource(properties = {
"cache.working.dir=./src/test/resources/cacheDirRepository/" } )
如何在基于linux的文件分隔符系统('/')和Windows基本文件分隔符系统('\')上启动此测试类
提前感谢,java.io.File包中有一些变量,您可以使用它们来解决此问题:
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
java.io.File
包中有一些变量,您可以使用它们来解决此问题:
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
提出以下几点:
//独立于平台,可跨Linux和Windows安全使用
"cache.working.dir=."+File.separator+"src"+File.separator+"test"+File.separator+"resources"+File.separator+"cacheDirRepository"
提出以下几点:
//独立于平台,可跨Linux和Windows安全使用
"cache.working.dir=."+File.separator+"src"+File.separator+"test"+File.separator+"resources"+File.separator+"cacheDirRepository"
嗯。我分享我最后的解决方案。也许还有一个更聪明的。我很高兴知道 3行动:
mvn clean install -DargLine="-Dfile_separator=/"
窗户
mvn clean install -DargLine="-Dfile_separator=\\"
嗯。我分享我最后的解决方案。也许还有一个更聪明的。我很高兴知道 3行动:
mvn clean install -DargLine="-Dfile_separator=/"
窗户
mvn clean install -DargLine="-Dfile_separator=\\"
/
有什么问题吗?实际上,在任何地方都可以正常工作。它在本机windows平台上不工作。一种可能的解决方法是启动linux命令解释器。但我正在寻找一个纯Windows解决方案。我想执行一个init.bat
,而不是init.sh
。/
有什么问题吗?实际上,在任何地方都可以正常工作。它在本机windows平台上不工作。一种可能的解决方法是启动linux命令解释器。但我正在寻找一个纯Windows解决方案。我想执行init.bat
,而不是init.sh
。是的。这个解决方案正在运行,但是如果您有多个类似的测试用例,那么转换所有测试用例是一项真正的工作。是的,但是您可以通过创建一个方法java.util.List pathParts=java.util.Arrays.asList(“test”、“resources”、“cacheDirRepository”);genPath=StringUtils.join(pathParts,File.separator);不能在注释声明中使用StringUtils静态函数。您将得到错误:注释属性TestPropertySource.properties的值必须是常量表达式
我不能同时使用File.separator…:-(是的。此解决方案正在工作,但如果您有多个类似的测试用例,那么转换所有测试用例是一项真正的工作。是的,但您可以通过创建方法java.util.List pathParts=java.util.Arrays.asList(“测试”、“资源”、“缓存目录”);genPath=StringUtils.join(pathParts,File.separator)来创建通用路径);不能在批注声明中使用StringUtils静态函数。将出现错误:批注属性TestPropertySource.properties的值必须是常量表达式
我不能同时使用File.separator…:-(