在其他模块中加载测试资源?

时间:2012-06-18 12:09:10

标签: java maven junit

我在另一个模块中使用抽象类来读取和输入我的testdata:

package src/main/java/path/to/my/base/testclass;
InputStream stream = getClass().getResourceAsStream(filename);

filename例如"test.txt",位于src/main/resources/path/to/my/base/testclass

只要我将这个抽象类放入与我的测试类相同的模块中,一切正常。 然后我将acstract类(以及资源​​)提取到其他模块,编译,添加到pom等。 结果:我的测试实现运行正常,但是:我正在获得file could not be found.

的IO异常

我在这里缺少什么?为什么抽象类在同一个模块中工作,而不在另一个模块中工作?

1 个答案:

答案 0 :(得分:2)

测试资源仅适用于此工件的测试,不会部署它们。

有两种可能的方法:

  • 脏:制作你的应用deploy a test jar along with the main jar, 并将其作为具有范围TEST的依赖项添加到第二个工件。
  • 清理:为基础测试类创建单独的测试工件 常见的测试资源。重要提示:在这个工件中,src / test中没有任何内容,所有内容都在src / main中。从另一个引用此测试工件 范围为TEST的工件。