我有一个带有Java库内部模块的Android Studio项目,该模块具有测试资源的测试。然而,当我运行测试时,我无法检索工件。这似乎在纯Java gradle项目中很好(至少在eclipse中)。
含义对于java插件:
src/main/java
src/main/test
src/test/java
src/test/resources
在资源目录下,我有一个我想在junit测试中加载的crt文件。当我使用任何命令时,它会为资源返回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
由于
答案 0 :(得分:18)
事实证明这似乎是Intellij的一个错误,以及Gradle没有正确设置测试源集的资源目录。
将其添加到模块的build.gradle中修复它:
sourceSets {
test {
output.resourcesDir = output.classesDir
}
}
答案 1 :(得分:5)
不是将资源分散到类输出目录 - 如 nibbuen 所示 - 也可以不触及输出目录并将其显式添加为依赖项。
<title>TODO supply a title</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" src="//cdn.mcfcloud.com/jquery-1.11.2/external/jquery/jquery.js"></script>
<link href="//datatables.net/download/build/nightly/jquery.dataTables.css" rel="stylesheet" type="text/css" />
<script src="//datatables.net/download/build/nightly/jquery.dataTables.js"></script>
<script src="//cdn.rawgit.com/ashl1/datatables-rowsgroup/v1.0.0/dataTables.rowsGroup.js"></script>
<div class="container">
<table id="example" class="display" width="100%">
</table>
</div>