无法从属性文件中获取属性?

时间:2012-01-24 06:35:52

标签: java

我编写了一个类FetchProp,它扩展了类PropMap,它从属性文件中获取值。当我运行FetchProp作为junit测试用例时,它正在给我正确的输出,即它以我想要的方式获取属性。然后我创建了类CreateReport调用FetchProp的方法有助于生成报告。但是当我在CreateReport上运行测试用例时,FetchProp不像以前独立运行那样获取属性吗?

任何人都可以提出可能存在的问题

PS:我已经检查了属性文件的放置路径,每次运行程序时我都会显示属性文件路径,文件中有我想要的属性。

1 个答案:

答案 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;
}

...而是从类路径中读取文件。