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