標籤:
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同級的地方建立這個檔案夾,沒有更多額外設定的話,測試代碼的放置需要按照新式結構,即tests\java下。如果沒有正確配置,則這個測試代碼將不可見。
除了代碼改動外,如果要在Android Studio裡面跑,則還需要額外配置:菜單Run -> Edit Configuration,在Android Tests下新增條目,然後正確配置,就可以了:選擇哪個Module,選擇測試的範圍(Module或Package等),選擇Target Device。這個是配置的東西,沒有辦法提交到Git。
下面是個簡單的例子,我們的app在測試的環境下會先彈出一個選環境的AlertDialog,所以需要clickOnText:
- /**
- * Created by Samuel Cai on 5/20/14.
- */
- public class MainActivityTest extends ActivityInstrumentationTestCase2 {
-
- private Solo solo;
-
- public MainActivityTest() {
- super(LogoActivity.class);
- }
-
- @Override
- public void setUp() throws Exception {
- super.setUp();
- solo = new Solo(getInstrumentation(), getActivity());
- }
-
- public void testNavigateToHomeScreen() throws Exception {
- //choose environment
- solo.waitForDialogToOpen();
- solo.clickOnText("qa");
- solo.clickOnButton("OK");
-
- //assert home screen finished loading.
- assertTrue(solo.waitForText("Diapering"));
- }
- }
轉自:http://m.blog.csdn.net/blog/hongaiyan/39676657#
[轉]Android Studio 裡搭建自動化測試架構Robotium