2017-07-13 7 views
0

ユニットテストの一環として、私のmaven javaプロジェクトでは、いくつかのファイルを作成する必要があります。 私はすべてのテストの後にクリーンアップしますが、それでも安全な側にいるようにしていますが、私は自分のプロジェクトにあるはずのフォルダにそれらを配置したいと思います。あなたは 'ターゲット'フォルダが適切な選択肢だと私に示唆することはできますか?単体テスト時に作成されたテストデータファイルはどこに置く必要がありますか?

私はそれらをプロジェクトの外に置くことができますが、すべてのマシンで簡単に実行可能にするためには面倒です。また、私のチームが直接管理していないマシンでは、ファイルまたはディレクトリのアクセス権の問題が発生する可能性があります。

+0

ターゲット 'folder'が唯一の選択肢である...あなたはMVN等 – khmarbaise

答えて

2

mvn cleanが呼び出されたときに、maven clean pluginがデフォルトで(少なくとも設定を変更しなかった場合)削除するため、targetフォルダを選択できます。また、targetディレクトリに書き込むことができるはずなので、これは正常に動作するはずです。

あなたのプロジェクトにJUnitを使用する場合は、TemporaryFolderクラスの組み込み機能を使用することをお勧めします。
これは、一時ディレクトリにフォルダを作成し、テストケースごとに削除します。下記の使用例を参照してください。

import java.io.File; 
import java.io.IOException; 
import org.junit.Rule; 
import org.junit.Test; 
import org.junit.rules.TemporaryFolder; 

public class TempFolderTest { 

    @Rule 
    public TemporaryFolder tempFolder = new TemporaryFolder(); 

    @Test 
    public void test() throws IOException { 
     File file = tempFolder.newFile(); 
    } 

} 

あなたが実際にtargetディレクトリを使用したい場合は、あなたも、コンストラクタの引数としてこれを与えることができます。しかし、一般的には、テストファイルの場所を自分で指定する必要はありません。

@Rule 
public TemporaryFolder tempFolder = new TemporaryFolder(new File("target")); 
+0

おかげ@SilverNakを必要と余分な設定をclean'ない単に'経由意味しているデフォルト値を経由してすべてを削除することができるよりも、私は知りませんでしたTemporaryFolder。私はそれを使用していないので、私は今後の開発でそれを使用しようとします。 – Vishal

関連する問題