Gradle Project With Espresso2.0

前言

就最近Google进行了SDK的更新,同样的提供了部分框架的更新以及合入了部分的框架。这里的Espresso就是其中的一个。详细的我们可以查看这次support library的更新:http://developer.android.com/tools/testing-support-library/index.html

既然Espresso被合入的话,那么是不是和以前的使用方式不同呢,就进行一下新的尝试。不过令人高兴的是在code.google上面2天前也对于Espresso2.0进行了相对应的doc更新,真的非常贴心,详细可见:https://code.google.com/p/android-test-kit/wiki/EspressoSetupInstructions

例子的代码见:https://github.com/monkeytest15/Espresso2.0-demo/tree/master

这里也再一张2.0更新的总结图


espresso1

尝试

那么我们接下来同样的使用AS新建一个Gradle的工程,在这个例子中我起名是Espress_V2

--------我是分割线君--------
详细设置如下
App目录下的build.gradle文件

apply plugin: 'com.android.application'

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
        applicationId "com.example.monkey.espresso_v2"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }



    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    packagingOptions{
        exclude 'LICENSE.txt'
    }
}

dependencies {
    // App's dependencies, including test
    compile 'com.android.support:support-annotations:21.0.3'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    //Espresso Testing-only dependencies
    androidTestCompile files('libs/espresso-1.1-bundled.jar')
    androidTestCompile files('libs/testrunner-1.1*.jar')
    androidTestCompile 'com.android.support.test.espresso:espresso-core:2.0'
    androidTestCompile 'com.android.support.test:testing-support-lib:0.1'
    androidTestCompile 'com.jayway.android.robotium:robotium-solo:5.3.1'

}

这里要注意的是新的这个testrunner的更新,否则会报出各种错误,而且这个设置的确和以前不同。android.support.test.runner.AndroidJUnitRunner

test class的编写

package com.example.monkey.espresso_v2;


import android.test.ActivityInstrumentationTestCase2;
import static android.support.test.espresso.Espresso.onView;

import static android.support.test.espresso.assertion.ViewAssertions.matches;
import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
import static android.support.test.espresso.matcher.ViewMatchers.withText;
import com.robotium.solo.Solo;


/**
 * Testing Fundamentals
 */
public class ApplicationTest extends ActivityInstrumentationTestCase2 {


    Solo solo;



    public ApplicationTest() {
        super(MainActivity.class);
    }

    @Override
    public void setUp() throws Exception {
        super.setUp();
        solo = new Solo(getInstrumentation(), getActivity());
    }

    public void testHelloWorld() {
        String TextViewString = getActivity().getString(R.string.hello_world);

        onView(withText(TextViewString)).check(matches(isDisplayed()));
    }
}

这里可以看出来已经可以直接引用SDK中的包了。

注意点

第一个就是我上面提到的TestRunner的更新
第二个就是如下的设置

espresso2

后记

AS其实还是非常贴心的,尤其在测试方面。来一张直接通过AS进行执行测试的结果图:


espresso2

AS也支持结果的report输出,包括各种我们需要的格式,多贴心。


espresso2

另外最后我也通过了终端的方式进行了再次的测试,如下结果(这个也是自动化必须的),同时我们的报告可以在这个路径下找到
~/app/build/outputs/reports。


espresso2

你可能感兴趣的:(Gradle Project With Espresso2.0)