Не удается разрешить символ 'AndroidJUnit4'
очевидно, мне нужен правильный импорт statment, чтобы решить эту проблему. Согласно docs for AndroidJUnit4, это должно быть
import android.support.test.runner.AndroidJUnit4;
когда я это делаю, Android Studio выделяет runner в красном и жалуется "не может решить символ 'бегун'".
фон
я добрался до этого момента, следуя учебникам на сайте разработчика Android для настройка тестов с помощью UI Automator. Первый проблема, с которой я столкнулся, была в том, что com.android.support:support-v4:22.2.0 и com.android.support.test:runner:0.2 зависит от различных версий com.android.support:support-annotations. Я следовал предложениям от этот отчет об ошибке Android и добавил следующее allprojects в моем проекте build.gradle:
configurations.all {
resolutionStrategy.force 'com.android.support:support-annotations:22.1.0'
}
это решило непосредственную ошибку, но я подозреваю, что это приведет к моим текущим проблемам. У кого-нибудь есть предложения о том, как это исправить?
соответствующие разделы `./gradlew : приложение: зависимости
androidTestCompile - Classpath for compiling the androidTest sources.
+--- com.jayway.android.robotium:robotium-solo:5.2.1
+--- com.squareup:fest-android:1.0.8
| --- org.easytesting:fest-assert-core:2.0M10
| --- org.easytesting:fest-util:1.2.5
+--- com.android.support.test:runner:0.2
| +--- junit:junit-dep:4.10
| | --- org.hamcrest:hamcrest-core:1.1
| +--- com.android.support.test:exposed-instrumentation-api-publish:0.2
| --- com.android.support:support-annotations:22.0.0 -> 22.2.0
+--- com.android.support.test:rules:0.2
| --- com.android.support.test:runner:0.2 (*)
--- com.android.support.test.uiautomator:uiautomator-v18:2.1.0
compile - Classpath for compiling the main sources.
+--- com.android.support:appcompat-v7:22.2.0
| --- com.android.support:support-v4:22.2.0
| --- com.android.support:support-annotations:22.2.0
+--- com.android.support:support-v4:22.2.0 (*)
+--- com.google.android.gms:play-services:6.1.71
| --- com.android.support:support-v4:20.0.0 -> 22.2.0 (*)
+--- com.crashlytics.android:crashlytics:1.+ -> 1.1.13
--- com.jakewharton:butterknife:5.1.2
9 ответов:
Я сделал ошибку, чтобы поставить тест классы src / test. После перемещения их в src / androidTest/java/ зависимость была устранена.
Итак, вот ваша ошибка и моя!
если мы собираемся написать кусочек кода Локальное Модульное Тестирование мы не должны использовать
@RunWith(AndroidJUnit4.class)потому что мы не используем AndroidJUnit4, но нам нужен Junit4. поэтому мы должны написать@RunWith(JUnit4.class). И, конечно же, ваш тестовый файл java находится под
нашел здесь что есть более новые версии библиотеки поддержки тестирования, чем то, что я использовал:
dependencies { androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test:rules:0.5' androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' }Примечание: обязательно используйте самые последние версии этих библиотек. Этот вопрос относится к тому времени, когда библиотека поддержки тестов Android была новой, а номера версий здесь очень устарели.
я решил проблему, сделав небольшое изменение в сборке приложения.файл gradle. В
dependencies { ... }раздел, не забудьте включить следующую строку:debugImplementation 'com.android.support.test:runner:1.0.1'или любая версия является самой новой в этот момент (
...Compileустарел и был заменен на...Implementation). Примечание использованиеdebugImplementation. Android Studio предложил авто-включая его сandroidTestImplementation, что не сработало.я узнал, как изменить его с теста на отладку, заглянув в проект Структура под зависимостями модуля приложения, где вы можете изменить область действия каждой зависимости, см. ниже.
поместите этот код в свои зависимости
compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' })
если кто-то все еще имеет эту проблему не может решить символ 'AndroidJUnit4' и с помощью api 27 добавить в сборку.gradle в модуле приложения следующее:
**testImplementation 'junit:junit:4.12'** // AndroidJUnitRunner and JUnit Rules androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test:rules:1.0.1' // Espresso dependencies androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'


Comments