0

你好 StackOverflow 社区,

我有这个JUnit需要使用命令运行服务器的测试mvn exec:java,并且我需要在执行测试之前删除目录的内容。否则,JUnit测试将失败。有什么办法可以将这些步骤包含到我的源代码中?

伊杰

4

4 回答 4

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
   }
}
于 2012-07-27T20:31:38.623 回答
1

您可以在 JUnit '@BeforeClass' 初始化方法中为您的目录放置一个递归删除。

于 2012-07-27T20:17:09.743 回答
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;
}
于 2012-07-27T20:14:33.920 回答
0

您可以使用ProcessBuilder执行来自 java 应用程序的命令

于 2012-07-27T20:22:21.693 回答