我编写了一个类FetchProp,它扩展了类PropMap,它从属性文件中获取值。当我运行FetchProp作为junit测试用例时,它正在给我正确的输出,即它以我想要的方式获取属性。然后我创建了类CreateReport调用FetchProp的方法有助于生成报告。但是当我在CreateReport上运行测试用例时,FetchProp不像以前独立运行那样获取属性吗?
任何人都可以提出可能存在的问题
PS:我已经检查了属性文件的放置路径,每次运行程序时我都会显示属性文件路径,文件中有我想要的属性。
答案 0 :(得分:0)
这可能取决于您获取属性文件的方式。如果您使用的是:
private Properties readProps() throws FileNotFoundException, IOException {
File f = new File("c:\\path\\to\\file\\props.properties");
Properties props = new Properties();
props.load(new FileInputStream(f));
return props;
}
...然后它可能在您的单元测试中有效,但在运行应用程序时则无效。你可能想尝试类似的东西:
private Properties readProps2() throws IOException {
InputStream stream = this.getClass().getResourceAsStream("props.properties");
Properties props = new Properties();
props.load(stream);
return props;
}
...而是从类路径中读取文件。