我正在写一些单元测试.我通过直接调用类来运行测试(而不是调用另一个程序).问题是这些类中的一些使用由相对路径定义的数据,因此它们要求程序在特定目录中启动.如何在Java中更改此内容?
例如,我的单元测试开始C:/unittest
,我需要的数据是C:/OtherProject
.如果可能的话我不想修改其他项目的代码,在java中是这样的:
File.setWorkingDir("C:/OtherProject");
Run Code Online (Sandbox Code Playgroud)
那样的话
File file = new File("data/data.csv");
Run Code Online (Sandbox Code Playgroud)
会读C:/OtherProject/data/data.csv
而不是C:/unittest/data/data.csv
.
Buc*_*ket 13
更新我的答案,因为VolkerSeibt指出它是不正确的.接得好.
这是可能的System.setProperty
.您可以通过更改"user.dir"
系统属性来更改当前工作目录:
System.setProperty("user.dir", "/foo/bar");
Run Code Online (Sandbox Code Playgroud)
有关详细说明,请参阅http://www.javacodex.com/Files/Set-The-Current-Working-Directory.