我用robolectric进行单元测试。对于某些测试,我在debug assest文件夹中添加了json文件,并通过以下方式获取它们:RuntimeEnvironment.application.getResources().getAssets().open(filename);
在debugUnitTest中,我可以访问debugAssests,但是如果我运行我的releaseUnitTest,我就不会。
如何告诉releaseUnitTest从调试文件夹中获取资产?或者您将在哪里保存json文件以在单元测试中使用它们?
答案 0 :(得分:0)
不是将json文件保存在diff flavor的资源文件夹中,而是将它们放在test
assets文件夹中,这样可以让所有不同的文件访问资产内容。
尝试将此添加到build.gradle文件中的android {}块
sourceSets{
test {
assets.srcDirs = ['src/test/assets']
}
}
答案 1 :(得分:0)
所以我终于成功了。我在这个robolectric github issue找到了答案。感谢nebiros。
将测试资源文件夹添加到androidTest,resources.srcDirs + = ['src / test / resources'],这是一个例子: android { sourceSets { String sharedTestJavaDir ='src / sharedTest / java'
test {
java.srcDirs += [sharedTestJavaDir]
}
androidTest {
java.srcDirs += [sharedTestJavaDir]
resources.srcDirs += ['src/test/resources']
}
} }
this.getClass().getClassLoader().getResourceAsStream(filename);