Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing 如何将maven资源也用作测试资源_Unit Testing_Maven 2 - Fatal编程技术网

Unit testing 如何将maven资源也用作测试资源

Unit testing 如何将maven资源也用作测试资源,unit-testing,maven-2,Unit Testing,Maven 2,我有一个maven项目,它加载一个xslt文件并执行转换以及对结果的其他处理。通常,当用户运行应用程序时,用户提供要加载的xslt文件路径。但是我在我的应用程序中包含了一些默认的xslt文件,用户可以在不加载任何外部xslt文件的情况下使用这些文件。为此,我将它们添加到src/main/resources/xslt。我的问题是,我想在测试阶段对这些xslt文件运行测试。我怎样才能做到这一点?我是否应该将src/main/resources/xslt内容复制到target/某处,并将其加载到测试类

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

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

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

  • 首先
    目标/测试类
  • 然后
    target/classes
  • 然后
    依赖关系

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

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

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

您还可以查看。

是的。。在发布了这个问题后,我明确地尝试了这样做,而且效果很好。我的印象是,src/*只用于生成、处理和编译,这是一种惯例,之后的任何阶段都应该只查看target/*路径来完成其工作。不是吗?@Paralife您的资源被复制到
target/classes
(测试资源被复制到
target/testclasses
)。我已经澄清了这一点。它回答了问题吗?啊,好的。我不明白它们是抄袭的。我只是认为src/main/resources可以直接从测试中看到。我现在看到了。谢谢。顺便说一句,我在之前的评论中假设的惯例是对的还是错的?@Paralife:不知何故,是的,大多数事情都是在
target
的内容上完成的。