0

我编写了一个单元测试,其中我引用了位于 src/test/resources 中的文件。代码如下所示:

private static final String TEST_FILE = MyClass.class.getResource("").getPath() + "myfile.properties";

当我使用普通的 JUnit Runner 在 eclipse 中运行这个测试时,一切正常。但是当我用 ECL Emma 运行这个测试时,测试失败了。

经过一番调查,我发现执行目录不同。ECL Emma 有自己的输出文件夹,它复制所有需要的资源,然后运行测试。但它不会复制我的测试文件。我不知道如何解决这个问题。我希望有人能帮助我。

4

1 回答 1

2

您可以使用此处所述的就地仪器:

http://www.eclemma.org/userdoc/launching.html

Emma 不会影响类路径/复制类文件。

另一种选择是将您的资源保存在单独的资源文件夹中(不在 src/ 中)并将此文件夹添加到类路径中。

也许将文件作为 InputStream 检索会更好:

  InputStream inStream = MyClass.class.getResourceAsStream("/myfile.properties");
于 2011-04-07T09:25:23.757 回答