我不认为这是一个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' –