我写了一个单元测试,其中我引用了一个位于src / test / resources中的文件。 代码如下所示:
private static final String TEST_FILE = MyClass.class.getResource("").getPath() + "myfile.properties";
当我使用普通的JUnit Runner在eclipse中运行此测试时,一切正常。但是当我用ECL Emma运行这个测试时,测试失败了。
经过一番调查后,我发现执行目录是不同的。 ECL Emma有自己的输出文件夹,可以复制所有需要的资源,然后运行测试。但它不会复制我的测试文件。我不知道如何解决这个问题。我希望有人可以帮助我。
答案 0 :(得分:2)
您可以使用此处所述的就地检测:
http://www.eclemma.org/userdoc/launching.html
Emma不会影响类路径/复制类文件。
另一种方法是将资源保存在单独的资源文件夹中(而不是在src /中),并将此文件夹添加到类路径中。
也许最好将文件检索为InputStream:
InputStream inStream = MyClass.class.getResourceAsStream("/myfile.properties");