如何针对发布版本APK运行Android/ Robotium Instrumentation测试用例



我有一个Android项目设置,其纯Java单元测试项目运行在PC上,其功能/集成测试项目运行在模拟器上。这两个都使用了InstrumentationTestCase2测试用例和Robotium框架。我能够从Eclipse中运行这两个,对我的应用程序的调试版本并收集结果等等。

我能够通过Eclipse导出和Ant构建创建一个发布APK。APK被签名、压缩和混淆。

我想知道如何对我的应用程序的发布版本运行那些功能/集成测试,而不是调试一个。我知道我可能会遇到一些错误,因为应用程序项目包含一些仅用于测试的类,这些类可能已经被Proguard剥离,但我可以处理。

我搜索了谷歌和这里在SO,但没有运气。当你只有应用程序的APK时,这里只有一个页面与Robotium测试有关,没有源代码。我不确定这真的能帮到我。我如何让测试项目在设备上运行,以对抗发布APK?

  1. 同时签署正在测试的发布应用程序和测试Robotium应用程序你的释放键
  2. 在你的设备上安装这两个应用程序
  3. 使用以下命令运行测试:

adb shell am instrument -w com.your.package/android.test.InstrumentationTestRunner

其中com.your.package是你的包名。

参见Robotium Q&A了解更多信息:http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

正如您所提到的,您可能还会有一些Proguard问题,这取决于您是如何编写测试用例的。

我想知道如何运行这些功能/集成测试对我的应用程序的发布版本,而不是调试版本。

我在寻找解决方案的时候遇到了这个问题。

由于这是一个有老答案的老问题,我将给出一个基于gradle的Android项目的更新答案。

我所做的是:

  1. 让测试apk在发布版本类型上运行,添加以下内容:
android {
    testBuildType "release"
}
  • 为您的测试apk添加保护规则
  • buildTypes {
        release {
            minifyEnabled true
            proguardFiles 'proguard-rules.txt'
            testProguardFile('proguard-rules.txt')
        }
    }
    

    现在尝试针对一个发布版本运行测试。你仍然可能遇到错误,由于保护。如果您像我一样使用Robotium,您可以在proguard-rules.txt文件中添加以下行:

    ##--------------- Begin: proguard configuration for Robotium  ----------
    -keep class com.robotium.** { *;}
    ##--------------- End: proguard configuration for Robotium  ----------
    

    希望能有所帮助。

    你需要放ant。你的目标应用和测试应用的项目根目录下的属性。蚂蚁的内容。属性应该是这样的:key.alias=key.store.password=key.store=key.alias.password=

    最新更新