2016-07-26 53 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

相關問題