繁体   English   中英

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

[英]How to set the location of junit TemporaryFolder to an environment variable

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

根据我们的长期讨论,我现在了解到您提出以下要求:

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

(如果我正确地回答了您的问题,请进行相应的编辑并更改标题。)

JUnit 4.11+

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

JUnit <4.11

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

您将在此处找到详尽的信息: 用于控制java.io.tmpdir的环境变量?

关于系统属性和环境变量的更一般的描述: Java系统属性和环境变量

但是,您应该从Java-doc中注意到这句话:

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

如果要确保始终将临时文件夹控制在自己的控制范围内,则可以创建自己的org.junit.rules.TemporaryFolder版本-并不难,只需使用File.createTempFile(prefix,后缀, 目录显式分配了第3个参数directory

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM