我已经退出编程一段时间了,我又回到了它,我遇到了一个非常特殊的问题。在过去,每当我从Maven中编译测试代码时,它都会将测试源树中包含的所有* .xml资源文件复制到target/test-classes
。但昨晚,在我目前的项目中,它不再这样做 - 这不是我的预期。每当我通过Maven或Intellij IDEA运行测试时,测试都会失败,因为它在类路径中找不到任何* .xml文件 - 它们从未被复制过。
我的计算机上有较旧的项目使用完全相同的.pom文件和项目结构,并且* .xml文件复制得很好。
为了解决这个问题,我将以下XML包含在我的Maven POM中:
<testResources>
<testResource>
<directory>src/test/java</directory>
<filtering>false</filtering>
<includes>
<include>**/*.xml</include>
</includes>
</testResource>
</testResources>
虽然这解决了这个问题,但我仍然很好奇为什么我不得不告诉Maven手动将我的测试源树中的* .xml文件复制到我的target / test-classes目录。就像我说的那样,过去两年中所有其他旧项目都是在没有指定testResources
的情况下复制* .xml文件。
可能导致此行为的原因是什么?
答案 0 :(得分:7)
您应该将资源文件放在src/test/resources
而不是src/test/java
,这是针对java源文件的。
答案 1 :(得分:1)
要控制(也)复制哪些文件,请查看Resource Plugin Documentation