Модульный тест Android с контекстом завершился неудачей в Travis CI с «java.lang.SecurityException», но успешно с локальным обновлением Gradle 5.6 - PullRequest
2 голосов
/ 07 ноября 2019

Все мои тесты работали нормально в Travis CI. После того, как я обновил свой проект до версии 5.6, некоторые из моих модульных тестов не прошли на Travis CI, но прошли локально. Они потерпели неудачу со следующим сообщением:

    java.lang.SecurityException

Неудачный тест - это тот, который должен иметь доступ к контексту Android для небольших операций. Мне нужно запустить их под инструментарием регистрации, но я хочу оставить их в качестве юнит-теста. Я пробовал @RunWith(RobolectricTestRunner::class) и @RunWith(AndroidJUnit4::class)

Например, этот тест, который тестирует расширение представления, которое позволяет мне изменять видимость моего представления

@Config(sdk = [Build.VERSION_CODES.P])
@RunWith(AndroidJUnit4::class)
class ViewExtUnitTest {

    private lateinit var context: Context

    @Before
    fun setup() {
        context = ApplicationProvider.getApplicationContext<WatchMyBackApplication>()
    }

    @Test
    @Throws(Exception::class)
    fun whenTrue_viewVisible(){
        val view = View(context)
        view.visibleOrInvisible(true)
        assertThat(view.visibility).isEqualTo(VISIBLE)

    }
}

Раньше он работал нормальнолокально и на Travis CI теперь это не удалось только на Travis CI

Вот моя конфигурация gradle

buildscript {
    ext.kotlin_version = '1.3.60-eap-25'
    repositories {
        google()
        jcenter()
        maven { url "https://maven.google.com" }
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }

    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.0.0-alpha01'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4'
        classpath 'com.google.gms:google-services:4.3.2'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }

    }
}

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