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


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

    官方文档里面没有提到怎么在Android Studio里搭建它,后来在Stack Overflow找到个答案:http://stackoverflow.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同级的地方建立这个文件夹,没有更多额外设置的话,测试代码的放置需要按照新式结构,即testsjava下。如果没有正确配置,则这个测试代码将不可见。

    除了代码改动外,如果要在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.   
    6.     private Solo solo;  
    7.   
    8.     public MainActivityTest() {  
    9.         super(LogoActivity.class);  
    10.     }  
    11.   
    12.     @Override  
    13.     public void setUp() throws Exception {  
    14.         super.setUp();  
    15.         solo = new Solo(getInstrumentation(), getActivity());  
    16.     }  
    17.   
    18.     public void testNavigateToHomeScreen() throws Exception {  
    19.         //choose environment  
    20.         solo.waitForDialogToOpen();  
    21.         solo.clickOnText("qa");  
    22.         solo.clickOnButton("OK");  
    23.   
    24.         //assert home screen finished loading.  
    25.         assertTrue(solo.waitForText("Diapering"));  
    26.     }  
    27. }  

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

  • 相关阅读:
    xshell5连接虚拟机的小问题处理
    centos下安装python的过程
    windows下安装配置redis
    Mysql 插入修改报Incorrect string value: 'xE7xACxAC' for column 'DetectionResult' at row 1错误
    MD5 以key和iv保存 FormsAuthentication.HashPasswordForStoringInConfigFile过时的问题
    The user specified as a definer ('root'@'%') does not exist的解决方法
    C#判断字符串中包含某个字符的个数
    jquery easyui datagrid 在翻页以后仍能记录被选中的行及刷新设置选中行数据
    bat批处理删除多少天前的文件
    C# 获取系统字体方法
  • 原文地址:https://www.cnblogs.com/John5/p/4679420.html
Copyright © 2020-2023  润新知