如何使用maven资源也作为测试资源

时间:2010-06-04 23:51:40

标签: unit-testing maven-2

我有一个maven项目,它加载一个xslt文件并执行转换以及对结果的其他处理。通常,当用户运行应用程序时,用户提供要加载的xslt文件路径。但是我在我的应用程序中包含了一些默认的xslt文件,用户无需加载任何外部xslt文件即可使用这些文件。我这样做是通过将它们添加到src / main / resources / xslt。我的问题是我想在测试阶段对那些xslt文件运行测试。我怎样才能做到这一点?我应该将src / main / resources / xslt内容复制到target / somewhere并在我的测试类代码中加载它们吗?哪个插件用于此?

2 个答案:

答案 0 :(得分:17)

  

我的问题是我想在测试阶段针对那些xslt文件运行测试。我怎样才能做到这一点?

无所事事,target/classes位于测试的类路径上。更准确地说,测试的类路径是:

  • 首先target/test-classes
  • 然后target/classes
  • 然后dependencies

因此,来自src/main/resources的资源(已复制到target/classes)可以从测试中看到。

答案 1 :(得分:2)

如果您将文件foo.txt放在src/test/resources/内,可以通过以下方式打开:

// try-with-resource (Java 1.7)
try (InputStream is = getClass().getClassLoader().getResourceAsStream("foo.txt")) {
    // do something with is...
}

您还可以查看maven-resources-plugin