2016-07-26 116 views
0

我使用robolectric运行我的单元测试。对于某些测试,我在调试集文件夹中添加了json文件,并通过以下方式获取它们:RuntimeEnvironment.application.getResources().getAssets().open(filename);在releseUnitTest中使用调试资产而不是发布应用程序资产

在debugUnitTest中,我有权访问debugAssests,但是如果我运行releaseUnitTest,则不会。

如何告诉releaseUnitTest从调试文件夹中获取资源?或者你会在哪里保存json文件以在单元测试中使用它们?

回答

0

加入这个到Android {}块于是我终于设法得到它的工作。我在这个robolectric github issue中找到了答案。感谢nebiros。

  • 将您的夹具文件添加到测试人员的资源文件夹中,这里是:src/test/resources。
  • 添加测试资源文件夹androidTest,resources.srcDirs + = [ '的src /测试/资源'],这里是一个例子: 机器人{ sourceSets { 字符串sharedTestJavaDir = '的src/sharedTest/JAVA'

    test { 
        java.srcDirs += [sharedTestJavaDir] 
    } 
    androidTest { 
        java.srcDirs += [sharedTestJavaDir] 
        resources.srcDirs += ['src/test/resources'] 
    } 
    

    }}

  • 访问夹具这样的文件从androidTest ENV:this.getClass().getClassLoader().getResourceAsStream(filename);
0

您可以将它们放在test资产文件夹中,而不是将json文件保存在diff flavor的资产文件夹中,这会允许所有不同的风格访问资产内容。

Here is a screenshot for reference

尝试在你的build.gradle文件

sourceSets{ 
    test { 
     assets.srcDirs = ['src/test/assets'] 
    } 
} 
+0

谢谢阿尼rudh为你的答案,但我不希望我的单元测试json文件成为发布应用程序的一部分。所以,如果我将它放在那里,它将与应用程序一起发货,对吧? – reebow

+0

是的,它会。尝试将资产文件夹放在主文件夹下方的测试文件夹中。这会有帮助吗? –

+0

不,这是行不通的:( – reebow

相关问题