Gradle Project With Espresso2.0

作者: 赏味不足 | 来源:发表于2016-11-14 13:39 被阅读51次

    前言

    就最近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更新的总结图


    espresso1espresso1

    尝试

    那么我们接下来同样的使用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;
    
    
    /**
     * <a href="http://d.android.com/tools/testing/testing_android.html">Testing Fundamentals</a>
     */
    public class ApplicationTest extends ActivityInstrumentationTestCase2<MainActivity> {
    
    
        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的更新
    第二个就是如下的设置

    espresso2espresso2

    后记

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


    espresso2espresso2

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


    espresso2espresso2

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


    espresso2espresso2

    相关文章

      网友评论

        本文标题:Gradle Project With Espresso2.0

        本文链接:https://www.haomeiwen.com/subject/vlyhpttx.html