如何将junit TemporaryFolder的位置设置为环境变量

时间:2014-05-14 15:48:25

标签: java eclipse

我正在使用junit的TemporaryFolder来测试处理文件系统的应用程序的一部分。是否可以在运行配置中将junit变量java.io.tmpdir设置为Environment变量?

1 个答案:

答案 0 :(得分:3)

根据我们的长期讨论,我现在明白你问这个:

  

如何配置JUnit,以便它使用特定文件夹来创建临时文件。

(如果我的问题得到了解决,请相应地进行编辑并更改标题。)

JUnit 4.11 +

最简单的方法是使用新的构造函数TemporaryFolder(File parentFolder)。这是首选方式。

JUnit< 4.11

您知道org.junit.rules.TemporaryFolder使用系统属性java.io.tmpdir。实际上,当您查看源代码时,它会在内部使用File.createTempFile(prefix, suffix)方法,该方法使用此系统属性。

您可以在此处找到详尽的信息:Environment variable to control java.io.tmpdir?

更一般地说,系统属性和环境变量:Java system properties and environment variables

但是,您应该注意Java-doc

中的这句话
  

Java时,可以为此系统属性赋予不同的值   调用虚拟机,但以编程方式更改到此属性   不保证对临时目录有任何影响   这种方法使用。

如果你想确定你的临时文件夹总是在你的控制之下,你可以create your own版本的org.junit.rules.TemporaryFolder - 它不是那么困难,你只需使用File.createTempFile(prefix, suffix, directory)明确分配第3个参数directory