2011-12-16 44 views
7

我有一个Android项目设置,它的纯Java在PC上运行的单元测试项目以及在Emulator上运行的功能/集成测试项目。这两个使用InstrumentationTestCase2测试用例和Robotium框架。我能够从Eclipse中运行这两个,针对我的应用的调试版本,并收集结果等。如何针对发布版本APK运行Android/Robotium Instrumentation测试用例?

我可以通过Eclipse导出和Ant构建来创建发布APK。 APK已签名,zipaligned和混淆。

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

我在谷歌搜索和这里搜索,但没有运气。只有一个页面here与Robotium测试相关,当你只有应用程序的APK,没有来源。我不确定这会对我有帮助。 如何让测试项目在发布APK的设备上运行?

回答

2
  1. 登录都被测发布应用程序,并与您的 释放钥匙
  2. 安装测试Robotium应用这两个应用程序上您的设备
  3. 使用以下命令运行测试:

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

其中com.your.package是您的软件包名称。

见Robotium Q &一种更多的信息:http://code.google.com/p/robotium/wiki/QuestionsAndAnswers

正如你提到的,你也可能有一些问题,Proguard的取决于你如何写测试用例。

+0

目前我不在该项目工作,但答案仍然有用。另外,@Frank已经为此付出了代价。 请您详细说明如何继续? 我的意思是:好吧,说你用相同的(释放)键签名调试APK和释放APK。 那你怎么走得更远呢?谢谢! – superjos 2013-02-12 09:16:16

1

您需要将ant.properties放入您的目标应用程序和测试应用程序的项目根目录中。 的ant.properties的内容应该是这样的: key.alias= key.store.password= key.store= key.alias.password=

+1

你好。谢谢你的回答。我认为这是创建APK的必要条件(签名,等等)。该操作已经发生。我之后所做的是对发行版APK进行功能/集成测试。 – superjos 2012-07-17 14:34:08

2

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

我遇到了这个问题,同时寻找解决的办法..

由于这是旧的答案一个老问题,我要给基于摇篮,Android项目的最新答案。

我所做的是:

  1. 让测试APK针对发布版本类型运行通过添加这样的:
android { 
    testBuildType "release" 
} 
  • 附加你的测试apk的proguard规则也是如此
  • buildTypes { 
        release { 
         minifyEnabled true 
         proguardFiles 'proguard-rules.txt' 
         testProguardFile('proguard-rules.txt') 
        } 
    } 
    

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

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

    希望它能帮助。

    相关问题