AndroidJUnit4 должен иметь публичный конструктор - PullRequest
0 голосов
/ 21 ноября 2018

Я пытаюсь следовать Документам для разработчиков Android, чтобы написать Инструментированный модульный тест, но, конечно, он не работает.Я получаю сообщение об ошибке:

Custom runner class AndroidJUnit4 should have a public constructor with signature AndroidJUnit4(Class testClass)

, когда запускаю пример теста:

package com.devetry.ytp

import android.content.Context
import android.support.test.InstrumentationRegistry
import android.support.test.rule.ActivityTestRule
import android.support.test.runner.AndroidJUnit4
import androidx.test.filters.LargeTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

import androidx.test.runner.AndroidJUnitRunner
import org.junit.Assert
import org.junit.Rule

@RunWith(AndroidJUnit4::class)
class ExampleAndroidTest {

    /**
     * VARIABLES
     */



    /**
     * LIFE CYCLE
     */


    /**
     * Example Android Test
     *
     * An example android test
     */
    @Test
    fun exampleAndroidTest() {
        val context = InstrumentationRegistry.getTargetContext()
        Assert.assertEquals("com.devetry.ytp", context.packageName)
    }

}

Я пробовал несколько решений этой конкретной ошибки, которую я нашел в Интернете, но, как и большинство других вещей,Android, решение было либо устаревшим, либо просто не работало.К сожалению, из всех решений мне не удалось даже распознать общую тему, и поэтому я оказался в затруднительном положении.

Как я могу устранить ошибку и просто запустить Инструментированные модульные тесты?

1 Ответ

0 голосов
/ 09 июня 2019
package com.devetry.ytp

import android.content.Context
import android.support.test.InstrumentationRegistry
import android.support.test.rule.ActivityTestRule
import android.support.test.runner.AndroidJUnit4
import androidx.test.filters.LargeTest
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith

// AndroidJunitRunner and AndroidJUnit4 are not from the same pacakge
import androidx.test.runner.AndroidJUnitRunner
import org.junit.Assert
import org.junit.Rule

@RunWith(AndroidJUnit4::class)
class ExampleAndroidTest {

    /**
     * VARIABLES
     */



    /**
     * LIFE CYCLE
     */
...
}

Вы не используете классы из одного пакета, убедитесь, что они согласованы.Тестовый пакет поддержки конфликтует с пакетом androidx.

...