StackOverflow コミュニティの皆様、こんにちは。
JUnit
コマンドでサーバーを実行する必要があるこのテストがありmvn exec:java
、テストを実行する前にディレクトリの内容を削除する必要があります。そうしないと、JUnit
テストは失敗します。これらの手順をソース コードに含める方法はありますか?
エジェイ
StackOverflow コミュニティの皆様、こんにちは。
JUnit
コマンドでサーバーを実行する必要があるこのテストがありmvn exec:java
、テストを実行する前にディレクトリの内容を削除する必要があります。そうしないと、JUnit
テストは失敗します。これらの手順をソース コードに含める方法はありますか?
エジェイ
最初のテストがターゲット ディレクトリのクリーンアップを開始する前に呼び出される JUnit の @BeforeClass 表記を使用する必要があります。不必要なコーディングを避けるために、commons-io ライブラリも使用する必要があります。
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.junit.BeforeClass;
import org.junit.Test;
public class DeleteDirectoryTest {
private static final String DIRECTORY_PATH = "C:/TEMP";
@BeforeClass
public static void cleanUp() throws IOException {
FileUtils.deleteDirectory(new File(DIRECTORY_PATH));
}
@Test
public void doSomeTest() {
// Test code goes here
}
}
ディレクトリの再帰的な削除を JUnit '@BeforeClass' init メソッドに配置できます。
public static boolean emptyDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i=0; i<children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return true;
}
ProcessBuilderを使用して、Java アプリケーションからコマンドを実行できます