你好StackOverflow的社区内,运行命令行工具Java程序
我有这个JUnit
测试需要运行在命令mvn exec:java
服务器,我需要在测试之前删除一个目录的内容执行。否则,JUnit
测试将失败。有什么方法可以将这些步骤包含到我的源代码中?
EJAY
你好StackOverflow的社区内,运行命令行工具Java程序
我有这个JUnit
测试需要运行在命令mvn exec:java
服务器,我需要在测试之前删除一个目录的内容执行。否则,JUnit
测试将失败。有什么方法可以将这些步骤包含到我的源代码中?
EJAY
您应该使用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
}
}
这可行,接受我需要保留目录。我只想让它的内容被清除。另外,如何在java程序中运行另一个java程序? – 2012-07-31 00:44:53
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;
}
您可以将一个recursive delete您在您的JUnit的@BeforeClass“init方法目录。
可以使用ProcessBuilder从Java应用程序
你需要运行哪台服务器?有可能使用java api部署在大多数服务器上 – Kowser 2012-07-27 20:28:27