Подтвердить что ты не робот

Как запустить тестовый метод или класс в качестве теста на Android в Android Studio

Я использую Android Studio 0.2.4, но я предполагаю, что этот вопрос может иметь отношение к IntelliJ в целом. Мои тесты находятся под управлением src/instrumentTest/java, и все они расширяют AndroidTestCase. Когда я запускаю все тесты (скажем, щелкнув правой кнопкой мыши на исходной папке и нажав "Запустить..." ), тесты отлично протестированы на эмуляторе Android под Android Tests (как показано в разделе "Run/Debug Configurations" ).

Но если я попытаюсь запустить один тестовый метод или тестовый класс таким же образом (щелкните правой кнопкой мыши на методе и нажмите "Запустить..." ), тест выполняется как обычный тест JUnit, а не на эмуляторе, который из конечно не выполняется (трассировка стека ниже). Даже если я попытаюсь создать новую конфигурацию запуска, я не вижу ничего другого, кроме конфигурации JUnit.

Из среды IDE, как запустить тестовый метод или тестовый класс в качестве теста на Android?

Exception in thread "main" java.lang.NoClassDefFoundError: junit/textui/ResultPrinter
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:188)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: junit.textui.ResultPrinter
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    ... 3 more
4b9b3361

Ответ 1

Для тех, кто все еще следит, это работает в Android Studio 0.2.8. Есть три состояния, о которых вам нужно знать.

  • Если вы никогда раньше не запускали метод тестирования или класс, не будет сохраненной конфигурации запуска. Поэтому щелкните правой кнопкой мыши на методе или классе, и рядом с Run должна появиться стрелка вправо, которая отображает имя вашего теста. Выберите тот, у которого есть символ Android.

  • Если вы ранее использовали тестовый метод или класс как обычный JUnit-тест, то Android Studio сохранит эту конфигурацию, и в контекстном меню "Выполнить" в контекстном меню не будет указана стрелка вправо или параметры. В этом случае в меню файла перейдите в Run- > Edit Configurations..., найдите свой тест в разделе JUnit и удалите его. Тогда вы должны находиться в состоянии (1).

  • Если вы ранее использовали тестовый метод или класс в качестве теста на Android, тогда Android Studio сохранит эту конфигурацию, и в контекстном меню "Выполнить" в контекстном меню не будет стрелки вправо или параметры. Просто выберите "Запуск".

Ответ 2

Правильно ли вы настроили свой тестовый код в Android Studio? Gradle Последняя конвенция в Android Studio предназначена для вызова вашего каталога тестов androidTest. Затем в файле build.gradle вам нужно поставить:

    androidTest.setRoot('androidTest')
    androidTest.java.srcDirs = ['androidTest/java']

Затем вы можете щелкнуть правой кнопкой мыши по любому тестовому классу и запустить его.

ИЗМЕНИТЬ: Эти инструкции предназначены только для тестов эспрессо.