Android Studio 2.3 не имеет спецификатора Test Instrumentation в интерфейсе пользователя

После обновления до Android Studio 2.3, когда я пытаюсь запустить некоторые тесты эспрессо, я получаю следующую ошибку:

Не удалось выполнить тестовый запуск: невозможно найти информацию о приборе для: ComponentInfo {com.example.android/android.test.InstrumentationTestRunner} Пустой набор тестов.

Это было легко устранить в прошлом, когда в конфигурации запуска я мог указать свой собственный InstrumentationRunner. Теперь я не могу найти этот вариант, поэтому теперь я не могу указать класс своего класса.

Обратите внимание, что моя сборка gradle содержит

defaultConfig {
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    resConfigs "en", "es"
}

Ответ 1

Я столкнулся с этой проблемой сегодня утром. Я удалил старую конфигурацию запуска (ту, которая была создана до того, как вы указали новый бегун через build.gradle). Я повторно запускал тесты, и новый бегун был выбран Android Studio.

Ответ 2

В Android Studio 2.3 эта функция недоступна, так как это было необязательным для указания пакета/класса инструментального инструментария в предыдущих версиях Studio. Но Android 2.3 достаточно умен, чтобы выбрать это из файла build.gradle, если вы определили бегун для пакета Instrumentation.

Ответ 3

Следующая настройка исправила проблему

productFlavors {
        doTheTests {
            minSdkVersion 18
            testInstrumentationRunner "com.company.app.test.TestRunner"
            if (System.getenv('CONTINUOUS_INTEGRATION').equals("true")) {
                testInstrumentationRunnerArguments(package: "com.company.app.test")
            }
        }
    } 

Поскольку Android Studio не разрешает testInstrumentationRunnerArguments, но выполнение тестов через терминал действительно требует этого.

Очевидно, что в терминальной/CI-системе задайте переменную среды, например: export CONTINUOUS_INTEGRATION=true

Ответ 4

Что мне помогло - запуск теста из командной строки, а затем синхронизация проекта.