如何针对发布版本APK运行Android/Robotium Instrumentation测试用例?
我有一个Android项目设置,它的纯Java在PC上运行的单元测试项目以及在Emulator上运行的功能/集成测试项目。这两个使用InstrumentationTestCase2
测试用例和Robotium框架。我能够从Eclipse中运行这两个,针对我的应用的调试版本,并收集结果等。如何针对发布版本APK运行Android/Robotium Instrumentation测试用例?
我可以通过Eclipse导出和Ant构建来创建发布APK。 APK已签名,zipaligned和混淆。
我想知道如何对版本版本的应用运行这些功能/集成测试,而不是调试版本。我知道我可能会出现一些错误,因为应用程序项目包含一些可能已被Proguard剥离的仅供测试使用的类,但我可以处理它。
我在谷歌搜索和这里搜索,但没有运气。只有一个页面here与Robotium测试相关,当你只有应用程序的APK,没有来源。我不确定这会对我有帮助。 如何让测试项目在发布APK的设备上运行?
- 登录都被测发布应用程序,并与您的 释放钥匙
- 安装测试Robotium应用这两个应用程序上您的设备
- 使用以下命令运行测试:
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的取决于你如何写测试用例。
您需要将ant.properties放入您的目标应用程序和测试应用程序的项目根目录中。 的ant.properties的内容应该是这样的: key.alias=
key.store.password=
key.store=
key.alias.password=
你好。谢谢你的回答。我认为这是创建APK的必要条件(签名,等等)。该操作已经发生。我之后所做的是对发行版APK进行功能/集成测试。 – superjos 2012-07-17 14:34:08
我想知道如何对 我的应用程序的发行版而不是调试版运行这些功能/集成测试。
我遇到了这个问题,同时寻找解决的办法..
由于这是旧的答案一个老问题,我要给基于摇篮,Android项目的最新答案。
我所做的是:
- 让测试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 ----------
希望它能帮助。
目前我不在该项目工作,但答案仍然有用。另外,@Frank已经为此付出了代价。 请您详细说明如何继续? 我的意思是:好吧,说你用相同的(释放)键签名调试APK和释放APK。 那你怎么走得更远呢?谢谢! – superjos 2013-02-12 09:16:16