[转]Android Studio 里搭建自动化测试框架Robotium

Android的自动化测试框架可选择的不多,后来选了Robotium(https://code.google.com/p/robotium/),它的语法及易用性挺像我们用在iOS里的KIF。

官方文档里面没有提到怎么在Android Studio里搭建它,后来在Stack Overflow找到个答案:http://*.com/questions/23275602/robotium-with-android-studio/23295849#23295849

自己分析了下,要在Android Studio里搭建Robotium也蛮简单的:

1、build.gradle里,dependencies下增加 androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.1’。如果缺少这个配置,则在测试代码里将无法用到robotium的包。

2、我们项目的代码结构是老式的,所以需要重新设置test的地址,即在android.sourceSets下新增 androidTest.setRoot('tests’)。可以取tests外的其他名字,然后在跟build.gradle同级的地方建立这个文件夹,没有更多额外设置的话,测试代码的放置需要按照新式结构,即tests\java下。如果没有正确配置,则这个测试代码将不可见。

除了代码改动外,如果要在Android Studio里面跑,则还需要额外配置:
菜单Run -> Edit Configuration,在Android Tests下新增条目,然后正确配置,就可以了:选择哪个Module,选择测试的范围(Module或Package等),选择Target Device。
这个是配置的东西,没有办法提交到Git。

下面是个简单的例子,我们的app在测试的环境下会先弹出一个选环境的AlertDialog,所以需要clickOnText:

  1. /**
  2. * Created by Samuel Cai on 5/20/14.
  3. */
  4. public class MainActivityTest extends ActivityInstrumentationTestCase2 {
  5. private Solo solo;
  6. public MainActivityTest() {
  7. super(LogoActivity.class);
  8. }
  9. @Override
  10. public void setUp() throws Exception {
  11. super.setUp();
  12. solo = new Solo(getInstrumentation(), getActivity());
  13. }
  14. public void testNavigateToHomeScreen() throws Exception {
  15. //choose environment
  16. solo.waitForDialogToOpen();
  17. solo.clickOnText("qa");
  18. solo.clickOnButton("OK");
  19. //assert home screen finished loading.
  20. assertTrue(solo.waitForText("Diapering"));
  21. }
  22. }

转自:http://m.blog.csdn.net/blog/hongaiyan/39676657#

上一篇:iOS视频录制、压缩导出、取帧等http://www.jianshu.com/p/6f23f608048e


下一篇:mysql学习-windows下绿色版mysql安装问题解决办法