在单元测试期间加载WAR资源

时间:2012-10-24 17:30:42

标签: java unit-testing maven war stringtemplate

(上下文是部署为WAR的Maven JavaEE项目。)

我的应用程序类从src/main/resources目录中的包加载资源(使用StringTemplate 3.2.1库)。 - 这就像一个魅力,因为应用程序类文件和资源都在WEB-INF/classes的子目录中。 StringTemplate内的new FileInputStream(path)可以使用简单的相对路径查找资源。

使用JUnit测试我的类时,这个简单的设置不起作用:单元测试从test-classes目录运行,然后相对路径指向错误的位置(通常由来自的资源填充) src/test/resources)。

如何将StringTemplate传递给可在两种环境中工作的相对路径?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了文档,那么你使用绝对路径等而不是在类路径中找到的东西就做错了。此外,应该使用Class.getResourceAsStream(“xyz.conf”)加载资源,如果从src / main / resources或src / test / resources返回,则无关紧要,因为类路径是重要的。可能是我误解了事情。