2012-07-27 225 views
0

你好StackOverflow的社区内,运行命令行工具Java程序

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

EJAY

+0

你需要运行哪台服务器?有可能使用java api部署在大多数服务器上 – Kowser 2012-07-27 20:28:27

回答

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 
    } 
} 
+0

这可行,接受我需要保留目录。我只想让它的内容被清除。另外,如何在java程序中运行另一个java程序? – 2012-07-31 00:44:53

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; 
}