Hello StackOverflow社区,
我有这个JUnit
测试需要使用命令mvn exec:java
运行服务器,我需要在执行测试之前删除目录的内容。否则,JUnit
测试将失败。有什么办法可以将这些步骤包含在我的源代码中吗?
EJAY
答案 0 :(得分:2)
您应该使用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
}
}
答案 1 :(得分:1)
您可以在JUnit的'@BeforeClass'init方法中为您的目录放置recursive delete 。
答案 2 :(得分:0)
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;
}
答案 3 :(得分:0)
您可以使用ProcessBuilder从Java应用程序执行命令