我正在使用junit的TemporaryFolder来测试处理文件系统的应用程序的一部分。是否可以在运行配置中将junit变量java.io.tmpdir设置为Environment变量?
答案 0 :(得分:3)
根据我们的长期讨论,我现在明白你问这个:
如何配置JUnit,以便它使用特定文件夹来创建临时文件。
(如果我的问题得到了解决,请相应地进行编辑并更改标题。)
最简单的方法是使用新的构造函数TemporaryFolder(File parentFolder)。这是首选方式。
您知道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
。