Gradle 带有Java库模块的Android Studio无法加载测试资源

Gradle 带有Java库模块的Android Studio无法加载测试资源,gradle,android-studio,Gradle,Android Studio,我有一个androidstudio项目,它有一个Java库内部模块,可以使用测试资源进行测试。然而,当我运行测试时,我无法检索工件。这似乎在纯java gradle项目中工作得很好(至少在eclipse中是这样) java插件的含义: src/main/java src/main/test src/test/java src/test/resources 在resources目录下,我有一个crt文件,我想在junit测试中加载它。使用我遇到的任何命令时,它都会为资源返回null。但是我已经确

我有一个androidstudio项目,它有一个Java库内部模块,可以使用测试资源进行测试。然而,当我运行测试时,我无法检索工件。这似乎在纯java gradle项目中工作得很好(至少在eclipse中是这样)

java插件的含义:

src/main/java
src/main/test
src/test/java
src/test/resources
在resources目录下,我有一个crt文件,我想在junit测试中加载它。使用我遇到的任何命令时,它都会为资源返回null。但是我已经确认了资源在build文件夹中

我试过一些东西:

getClass().getClassLoader().getResourceAsStream("cert_format_der.crt").read(); // NPE
getClass().getClassLoader().getResourceAsStream("/cert_format_der.crt").read(); // NPE
getClass().getClassLoader().getSystemResourceAsStream("/cert_format_der.crt").read(); // NPE

感谢事实证明这似乎是Intellij的一个缺陷,Gradle没有正确设置测试源集的资源目录

将此添加到模块的build.gradle中可以修复此问题:

sourceSets {
   test {
      output.resourcesDir = output.classesDir
   }
}

而不是将资源分散到类输出目录− 正如尼布恩所建议的那样− 也可以不接触输出目录,显式地将其添加为依赖项

dependencies {
  runtime files(sourceSets.test.output.resourcesDir)
}

我发现在android studio中使用gradle命令“test”是可行的。任何想关注这个问题的人,最初的解决方法:和待解决的实时问题:不工作。测试资源未复制到生成目录,因此不在classpath.trued中。但是构建目录没有测试资源。