Почему не работает пример Android Instrumented Test из официальных документов? - PullRequest
0 голосов
/ 04 июля 2018

По документам https://developer.android.com/training/testing/unit-testing/instrumented-unit-tests, я создал следующий файл build.gradle для модуля приложения:

buildscript {
    repositories {
        mavenCentral()
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.25.3'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

repositories {
    maven { url 'https://maven.fabric.io/public' }
}


android {

    compileSdkVersion 27
    buildToolsVersion '27.0.3'
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.myapp"
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 7
        versionName "1.3.0"
        ndk {
            abiFilters "armeabi", "armeabi-v7a", "x86", "mips"
        }

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    sourceSets {
        main {
            jniLibs.srcDirs = ['libs']
        }
    }
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
    dexOptions {
        javaMaxHeapSize "4g"
    }
}

dependencies {
    // Required -- JUnit 4 framework
    testImplementation 'junit:junit:4.12'
    // Optional -- Mockito framework
    testImplementation 'org.mockito:mockito-core:1.10.19'
    androidTestImplementation 'com.android.support:support-annotations:27.1.1'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test:rules:1.0.2'
    androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-accessibility:3.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-web:3.0.2'
    androidTestImplementation 'com.android.support.test.espresso.idling:idling-concurrent:3.0.2'

    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation project(':deviceprint-lib-2.0.1')
    implementation files('libs/gson-2.2.4.jar')
    implementation files('libs/activation.jar')
    implementation files('libs/additionnal.jar')
    implementation files('libs/mail.jar')

    implementation 'com.android.support:support-v4:27.1.1'

}

и следующий уровень проекта build.gradle:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
    }
}

Я создал каталог в app / src / androidTest / java / com / mypackage и добавил следующий файл:

package com.mypackage;

import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import static org.hamcrest.Matchers.is;
import static org.junit.Assert.assertThat;


public class ApplicationTest
{
    public ApplicationTest()
    {

    }

    @Test public void failingTest()
    {
        assertThat(false, is(true));
    }
}

Все операторы импорта и аннотация @Test помечены как ошибки с сообщением «не удается разрешить символ», и если я щелкну правой кнопкой мыши по файлу в окне проекта, у меня нет опции «Выполнить». ». Почему?

1 Ответ

0 голосов
/ 04 июля 2018

Пример начал работать правильно после перезапуска Android Studio. : Facepalm:

Edit: другое замечание, поскольку я недавно испытывал эти же симптомы по другой причине: вариант сборки должен быть установлен на «отладку» (или вы должны установить testBuildType внутри блока android {} вашего модуля build.gradle файл с вариантом, который вы хотите проверить)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...