Android Studio "Никаких тестов не было найдено"
Кто-нибудь смог получить тесты для запуска в Android Studio (из графического интерфейса, а не терминала), я не смог запустить тесты из графического интерфейса.
Каждый раз, когда я пытаюсь запустить тесты через графический интерфейс, я просто получаю следующее сообщение:
Я могу запустить тесты с терминала, используя следующую команду:
./gradlew connectedAndroidTest
Я запускаю Android Studio 0.5.2 с Gradle 1.11 с плагином 0.9.0 на Mac OSX
Моя структура проекта такова:
MyProject/
src/
androidTest/
java/
com.myproject.app.test/
… (tests source code) …
main/
java/
com.myproject.app/
… (source code) …
res/
… (resources code) …
build.gradle
Мой файл build.gradle выглядит примерно так:
…
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
versionCode 12
versionName "2.0"
minSdkVersion 9
targetSdkVersion 19
testPackageName "com.test.foo"
testInstrumentationRunner "android.test.InstrumentationTestRunner"
}
}
…
Если у кого-нибудь есть предложения, я буду более чем счастлив здесь.
Ответы
Ответ 1
Хорошо, я нашел причину своей проблемы.
В файле misc.xml, который находится в папке.idea моего проекта, было недопустимое значение атрибута для компонента ProjectRootManager, которое выглядело следующим образом:
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6 (3)" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
Поэтому, меняя значение атрибута project-jdk-name на "1.6", я исправил эту проблему. Ниже показано, как это выглядело после обновления значения.
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_6" assert-keyword="true" jdk-15="true" project-jdk-name="1.6" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/build/classes" />
</component>
Надеюсь, это поможет кому угодно.
Ответ 2
Сегодня у меня была та же проблема с некоторыми тестами на эспрессо, и это сводило меня с ума, потому что все казалось нормальным. Наконец, я обнаружил, что проблема @BeforeClass
с тем, что метод, аннотированный с помощью @BeforeClass
(аннотация, используемая для отметки метода, который должен быть выполнен до любого из методов тестирования в классе), генерирует исключение. Причина, по которой мне потребовалось больше времени, чем ожидалось, это потому, что если что-то пойдет не так в этом методе, stacktrace исключения не отображается в окне журнала на вкладке "Запуск", а в окне "Журнал" на вкладке "Монитор Android"
Если вы хотите воспроизвести проблему, просто добавьте это в свой тестовый класс:
@BeforeClass
public static void setupClass() {
throw new RuntimeException("Sorry dude, you won't find any test!");
}
Ответ 3
Это может произойти, когда тип конфигурации запуска неверен.
Со мной это происходит неправильно при запуске теста Espresso с Kotlin: он каким-то образом создает тест JUnit от Android, который является неправильным типом. Проблема в ручном создании Android Instrumented Test.
Ответ 4
Для меня это было глупо. Простое переключение с варианта Release
в Debug
решило проблему.
Ответ 5
Проблема была решена для меня, просто стерев данные с моего эмулятора. В журналах я мог видеть, что было недостаточно места.
Это не было проблемой для меня, потому что тест, который я выполнил перед запуском теста, который дал мне ошибку пустого комплекта, работал нормально, и оба теста были в одном месте в проекте.
Ответ 6
В моем случае a использовал неправильную зависимость тестирования. У меня было следующее в моем build.gradle
testImplementation 'io.kotlintest.kotlintest-runner-junit5:3.4.2'
Как видите, это для JUnit5. Я изменил его на следующий
testImplementation 'io.kotlintest.kotlintest-runner-junit4:3.4.2'
И извини, ошибка.
Ответ 7
В моем случае, ИСПОЛЬЗУЯ КОТЛИН, он ничего не бросал. Если я запустил в терминале команду, которую она пыталась сделать:
$ adb shell am instrument -w -r -e debug false -e класс xx.xxxxxxx.xx.xx.xxx.xxx.HomeActivityTests xx.xxxxxxx.xx.xx.debug.test/android.support.test. runner.AndroidJUnitRunner
он выдаст ошибку:
Причина: org.mockito.exceptions.base.MockitoException:
Не могу издеваться/шпионить класс xx.xxxxxxx.xx.xx.xxx.xxx.xxx.ProductUseCase
Mockito не может издеваться/шпионить, потому что: - окончательный класс в xx.xxxxxxx.xx.xx.rules.useCases.ProductUseCaseRule. (ProductUseCaseRule.kt: 36) в xx.xxxxxxx.xx.xx.xxx.xxx.HomeActivityTests. (HomeActivityTests. kt: 25)... еще 20
ОТКАЗЫ !!!
и это показало мне, что я не open
свой класс, поскольку это необходимо при тестировании с Котлином
Ответ 8
@Test аннотация должна быть аннотирована из import org.junit.jupiter.api.Test;
Ответ 9
это очень простой вопрос, просто нажмите Alt + Shift + F10 и запустите его таким образом :) PS: если он не работает, попробуйте Shift + F10.