Для моих контрольно-измерительных приборов я использовал
@RunWith(AndroidJUnit4.class)
из
import androidx.test.runner.AndroidJUnit4;
чтобы установить мои тестовые случаи. Теперь эта строка помечается как устаревшая с подсказкой для использования AndroidJUnit4
из
import androidx.test.ext.junit.runners.AndroidJUnit4
Однако, если я пытаюсь импортировать AndroidJUnit4
из названного пакета, я получаю ошибку, которая ext
не может быть решена.
У вас есть идея, какой пакет должен быть включен в Gradle для решения этой проблемы?
android
junit
android-testing
androidx
Марсель Гангвиш
источник
источник
Ответы:
Согласно документации для AndroidJUnit4 ,
Файл Gradle должен содержать следующую строку:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
Изменить тестовый класс на
AndroidJUnit4ClassRunner
сAndroidJUnit4
Если это все еще не работает, убедитесь, что вы очистили и / или перестроили свой проект. Также вы можете проверить текущую версию прямо в репозитории Google Maven.
источник
Если вы попробовали решение @ MarcelGangwisch, и ваша сборка не может сказать, что он не может найти ресурс И вы также очистили / перестроили свой проект, и он все еще не работает, попробуйте это: (также на основе решения @ KrzysztofDziuba)
В своем файле Gradle, где вы изменили зависимость, убедитесь, что вы добавляете ее как нужный вам тип, т.е.
Для тестов пользовательского интерфейса:
Для юнит-тестов:
В моем случае я добавил как оба, и теперь это работает.
источник
Решение
Добавьте эту строку в build.gradle:
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
Изменение
AndroidJUnit4
кAndroidJUnit4ClassRunner
в тестовом классеПредупреждение
Я получил ту же ошибку, но следующее решение не удалось для меня:
File -> Invalidate Caches ... и выберите Invalidate and Restart
источник
Для меня сработали следующие шаги:
1. Заменить библиотеки androidx на размещенные здесь . мой финал
app/build.gradle
выглядел так:Затем я вручную заменил импортированные модули в своем
ExampleInstrumentTest.java
классе на последние классы:Что меня беспокоило, так это то, что
InstrumentationRegistery
класс все еще не рекомендуется. Так что я использовалInstrumentationRegistry.getInstrumentation().getTargetContext();
изandroidx.test.platform.app.InstrumentationRegistry
класса.источник
@RunWith(AndroidJUnit4ClassRunner.class)
была часть, которая получила решение проблемы в моем случае. Я не совсем понимаю, почему Android Studio иногда генерирует устаревший код.ApllicationProvider.getApplicationContext<Context>()
вместоInstrumentationRegistry.getInstrumentation().getTargetContext();
Я пробовал все приведенное выше, пока не зашел на официальный сайт Android, и они предложили импортировать из,
androidx.test.ext.junit.runners.AndroidJUnit4
а не изandroidx.test.runner.AndroidJUnit4
. ссылка на сайтисточник
В моем случае поменял
androidTestImplementation
наtestImplementation
помогло. Я не знал разницу до прочтения этой разницы между Android и testImplementation и androidTestImplementation в build.gradleисточник
Если вы импортировали эти тестовые библиотеки AnroidX, синхронизировали и пересобрали проект, но импортированные пакеты все еще не были разрешены. Просто вспомните, как вы обновили свой проект до AndroidX, закройте Android Studio, удалите
.idea
папку и снова откройте свой проект ...Это сработало для меня!
источник
Включите эти строки в модуль приложения build.gradle.
testImplementation 'androidx.test.ext: junit: 1.1.1' androidTestImplementation 'androidx.test.ext: junit: 1.1.1'
В тестовом классе замените вашего бегуна на
import androidx.test.ext.junit.runners.AndroidJUnit4;
Если
InstrumentationRegistry.getTargetContext()
не рекомендуется использоватьInstrumentationRegistry
сandroidx.test.platform.app
такInstrumentationRegistry.getInstrumentation (). GetTargetContext ()
источник