使用Android JUnit访问外部文件(AVD设备外部)



我正在使用Robotium来自动化Android应用程序。为此创建了一个安卓测试项目。在项目文件夹中,我想保留一些文件,如 .properties/.xls 等,并希望从/write 读取这些文件。例如,我的Android测试项目目录(src/main/java/config)下有一个config.properties文件,我想通过编码访问该文件:

对于普通的Java项目,我使用以下代码片段来加载config.properties文件:

CONFIG = new Properties();
FileInputStream fs = new FileInputStream(System.getProperty("user.dir")+"/src/main/java/config/config.properties");
CONFIG.load(fs);

同样的代码 - 当作为Android JUnit项目执行时,抛出错误说java.io.FileNotFoundException://src/main/java/config/config.properties:打开失败:ENOENT(没有这样的文件或目录)并且无法找到该文件。

如果有人在任何时候遇到过这种情况,请帮助我度过难关。

谢谢

西塔姆·贾纳软件质量保证工程师心灵火解决方案

您不能以这种方式访问 Java 项目的内部结构。当您在设备上安装 apk 时,您的 java 代码将转换为 Dalvik 虚拟机的 dex 代码,并且您将没有项目中的文件结构。

您可以尝试以下操作:

如果你只想读取 config.properties,你应该使用 http://developer.android.com/reference/android/content/res/AssetManager.html 类,并将你的 config.properties 放在项目中的/assets/中。

如果您还想编写 .properties 文件,请考虑创建一个临时文件,如下所示:在 Android 中创建临时文件。

此致敬意。

最新更新