JUnit是否支持测试的属性文件?

Dav*_*sen 23 java junit

我有需要在各种不同的临时环境中运行的JUnit测试.每个环境都具有不同的登录凭据或特定于该环境的其他方面.我的计划是将环境变量传递到VM中以指示要使用的环境.然后使用该var从属性文件中读取.

JUnit是否具有读取.properties文件的任何内置功能?

sco*_*ner 28

通常首选使用类路径相关文件作为单元测试属性,因此它们可以在不担心文件路径的情况下运行.开发框,构建服务器或任何地方的路径可能不同.这也可以在没有变化的情况下从ant,maven,eclipse中运行.

private Properties props = new Properties();

InputStream is = ClassLoader.getSystemResourceAsStream("unittest.properties");
try {
  props.load(is);
}
catch (IOException e) {
 // Handle exception here
}
Run Code Online (Sandbox Code Playgroud)

将"unittest.properties"文件放在类路径的根目录下.

  • 如果您将属性文件放在 `src/test/resources` 中,这是正确的解决方案 (3认同)
  • 这是很好的信息.您可以考虑将此作为对已经接受的答案的评论; 在那里,结果中遇到这种情况的人更有可能阅读. (2认同)

pst*_*ton 27

java内置了读取.properties文件的功能,JUnit内置了在执行测试套件之前运行安装代码的功能.

java阅读属性:

Properties p = new Properties();
p.load(new FileReader(new File("config.properties")));
Run Code Online (Sandbox Code Playgroud)

junit启动文档

把这两个放在一起你应该得到你需要的东西.

  • 可能需要使用ClassLoader:http://stackoverflow.com/a/9983486/640378 (2认同)