作者:Dfsk刘海_368 | 来源:互联网 | 2023-02-11 17:32
我正在使用以下调用来获取流,以便可以找到一些资源的文件名。
Thread.currentThread().getContextClassLoader().getResourceAsStream(...)
当我正常运行代码时,这可以正常工作;如果将资源复制到测试文件夹中,则也可以工作。
如何避免这种重复并使我的测试(通过IDEA运行时)使用main中的资源?
1> yegor256..:
您拥有的所有内容都src/test/resources
通过maven-resources-plugin复制到target/test-classes
。然后,您拥有的一切src/main/resources
都进入target/classes
。然后,maven-surefire-plugin 按以下顺序配置类路径:target/test-classes
首先和target/classes
下一个。
因此,如果您的资源同时位于src/main/resources
和中src/test/resources
,则其“测试”版本将被加载到单元测试中。
如果仅存在于中src/main/resources
,则它将在单元测试中可用,而无需任何其他操作。
如果src/test/resources
仅存在,则只能在单元测试期间访问它。