Android Studio "Никаких тестов не было найдено"

Кто-нибудь смог получить тесты для запуска в Android Studio (из графического интерфейса, а не терминала), я не смог запустить тесты из графического интерфейса.

Каждый раз, когда я пытаюсь запустить тесты через графический интерфейс, я просто получаю следующее сообщение:

enter image description here

Я могу запустить тесты с терминала, используя следующую команду:

./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.