我正在尝试从资源加载.json文件,以便我可以在单元测试中使用它们。
我创建了一个资源文件并将其标记为'resources root'目录,并将我的.json文件放在其中。由于文件仅用于测试,我不希望将它们放在/ res目录中,因为它会不必要地使应用程序膨胀。
我正在尝试使用以下代码打开资源文件,但是inputStream
将返回null。
InputStream inputStream = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("file.json”);
我在.iml文件中设置了以下内容,该文件应该将该目录表示为资源,但它似乎没有任何效果。
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
有没有人有任何想法我可能会出错?提前谢谢!
答案 0 :(得分:2)
您可以使用资源文件夹
下的资源文件夹或原始文件夹答案 1 :(得分:2)
当构建应用的APK文件时,它不包含您在“res”和“asset”之外创建的目录。测试时,只有APK中的文件会部署到设备或模拟器。因此,无法测试您未包含在APK中的文件。
放置在tests目录中的文件似乎无法访问。所以AFAIK,你必须把文件放在app APK中,然后再删除它。或者,更好的是,可以使用gradle来生成应用APK的版本以进行测试,并使用另一个版本来发布。发布版本可以排除该文件。