我不認爲這是一個IntelliJ問題,但是無論如何給出所有細節。我在IntelliJ 13中創建了一個Android測試應用程序,我試圖在Android應用程序中測試一些現有的代碼。這段代碼接受一個InputStream,它是一個要讀取的JSON文件。我正在嘗試測試讀取此文件InputStream的方法。我有以下幾點:在IntelliJ Android應用程序中讀取文件資產進行測試
我的項目結構如下:
android_test
- libs
- res
- src
- testAssetes
- file.json
而我的測試方法是:
public void testParseFile() {
FileInputStream in = new FileInputStream(new File("./testAssets/file.json"));
// code continues..
}
我一直得到一個FileNotFound例外。我也試過如下:
android_test
- libs
- res
- src
- com
- test
- file.json
然後我的代碼修改爲:
InputStream in = getClass().getResourceAsStream("/com/test/file.json")
在這種情況下,InputStream中始終爲空。我用類似的代碼創建了一個常規的java項目,它工作得很好。不確定它是否與InstrumentTestRunner的工作方式或交易內容有關。
更新:我剛剛意識到問題可能是因爲這些測試運行在InstrumentationTestRunner上,它在仿真器/設備上執行。所以我想我需要知道的是如何將我的測試文件放到該文件系統中並讀取它進行測試。
嗯,好的。但是當這些測試從Ant或adb運行時呢? – Gregg
如果你從'android_test'啓動'ant test',那麼'android_test'將會是'pwd' –