我应该在哪里放置单元测试期间创建的测试数据文件?

时间:2017-07-13 14:49:22

标签: java maven

作为单元测试的一部分,在我的maven java项目中,我必须创建一些文件。 虽然我在每次测试后都要清理但仍然处于更安全的一边,我想将它们放在应该在我的项目中的文件夹中。如果'目标'你能建议我吗?文件夹是正确的选择吗?

我可以将它们放在一个项目中,但是为了使它在所有机器中都可以轻松执行,这将是乏味的。此外,我可能会在不受我的团队直接控制的计算机中发出文件或目录权限问题。

1 个答案:

答案 0 :(得分:2)

您可以选择target文件夹,因为maven clean plugin会在调用mvn clean时默认删除它(至少在您未更改配置时)。您也应该能够写入target目录,因此这应该可以正常工作。

尽管如此,如果您将JUnit用于项目,我建议使用TemporaryFolder类的内置功能。<​​br/> 这将在临时目录中创建一个文件夹,并在每个测试用例后删除它。请参阅下面的使用示例。

import java.io.File;
import java.io.IOException;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;

public class TempFolderTest {

    @Rule
    public TemporaryFolder tempFolder = new TemporaryFolder();

    @Test
    public void test() throws IOException {
        File file = tempFolder.newFile();
    }

}

当您真正想要使用target目录时,您甚至可以将其作为构造函数的参数。但总的来说,我认为没有必要自己指定测试文件的位置。

@Rule
public TemporaryFolder tempFolder = new TemporaryFolder(new File("target"));