12

私はいくつかの単体テストを書いています。(別のプログラムを呼び出すのではなく) クラスを直接呼び出してテストを実行しています。問題は、これらのクラスの一部が相対パスで定義されたデータを使用するため、特定のディレクトリでプログラムを開始する必要があることです。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

4

1 に答える 1

15

VolkerSeibt が間違っていると指摘したため、回答を更新しました。良いキャッチ。

これは を通じて可能System.setPropertyです。"user.dir"システム プロパティを変更することで、現在の作業ディレクトリを変更できます。

System.setProperty("user.dir", "/foo/bar");

詳細については、 http://www.javacodex.com/Files/Set-The-Current-Working-Directoryを参照してください。

于 2013-09-25T15:34:48.327 に答える