IntelliJ将项目的资源文件分为“资源文件夹”和“测试资源文件夹”。我的理解是,如果你运行单元测试,那么它使用“测试资源文件夹”下列出的资源,否则,将使用“资源文件夹”。问题是,当运行相同的代码时,它似乎随意决定每隔一段时间从一个切换到另一个。我发现的唯一解决方法是将每个目录从“资源文件夹”移动到“测试资源文件夹”,反之亦然,但项目很大,资源很多,因此IntelliJ最终需要10-20分钟“复制资源......”步骤。
为什么会发生这种情况?如何避免这个问题?
答案 0 :(得分:0)
测试资源根是仅从测试引用的资源,资源根是可以从生产代码和测试代码引用的资源。编译过程将每个模块的资源和测试资源复制到单独的输出文件夹中。
运行测试运行配置(JUnit或TestNG)时,类路径将包括生产和测试输出文件夹;哪个优先取决于测试运行器的细节。运行任何其他运行配置类型时,类路径将仅包含生产输出文件夹。
IntelliJ中没有逻辑使用一个资源根类型而不是另一个。要么他们都在类路径上,要么只有一个。