Как отлаживать или устранять ошибку: текущий проект не может быть запущен для запуска конфигурации для инструментальных тестов Android?

У меня есть проект (созданный с помощью этого вопрос StackOverflow), в котором есть модуль с инструментальным тестом Android. Его можно запустить через обычную конфигурацию, в которой выбран модуль.

Это работает для плагина Android Gradle ‹=2.2.3 и >=3.0.0-beta1. Но как только я изменяю проект на проект Android Gradle 2.3.x (2.3.0 -> 2.3.3), я получаю это сообщение об ошибке для моей конфигурации запуска:

введите здесь описание изображения

Я не нашел способа получить дополнительную информацию или каким-либо образом отладить это сообщение об ошибке. Ни в этом окне, ни где-либо еще ничего не выделено.

Любая идея, что может быть причиной этого? Как я могу отладить это сообщение об ошибке, чтобы узнать, что не так с моим проектом?


person janpio    schedule 05.10.2017    source источник
comment
Очень странно: этот вопрос единственный результат поиска Google для этого сообщения об ошибке.   -  person janpio    schedule 05.10.2017


Ответы (1)


Попробуйте запустить инструментальные тесты из командной строки в Android Studio. Команда ./gradlew connectedAndroidTest . Это должно дать вам представление о том, что происходит.

Также убедитесь, что у вас запущен эмулятор или подключено устройство.

person The Riddler    schedule 05.10.2017
comment
Я так и сделал — и тесты, и сборка прошли успешно. Хм!? Командная строка Gradle вообще не использует конфигурацию запуска, только тесты, верно? - person janpio; 05.10.2017
comment
Да, в том смысле, что вы эффективно запускаете задачу Gradle, которая запускает ваши инструментальные тесты. Если вы используете пользовательский интерфейс Android Studio для запуска тестов, он использует шаблон конфигурации запуска по умолчанию. Это зависит от вашего исходного набора. Например, если вы перейдете к тесту Espresso в своем проекте, щелкните правой кнопкой мыши и выберите «Выполнить», он будет использовать шаблон Android Instrumented Tests. Точно так же, если вы перейдете к модульному тесту и запустите его, он будет использовать локальный шаблон модульного теста. Вы можете увидеть полную информацию здесь developer.android.com/studio/run/ . - person The Riddler; 06.10.2017
comment
Ok. Мой тест - это тест на эспрессо. Когда я запускаю класс или метод, щелкнув правой кнопкой мыши -> Выполнить, он создает конфигурацию запуска Android JUnit вместо ожидаемого инструментального теста Android, который затем завершается с ошибкой !!! Ожидается версия JUnit 3.8 или более поздняя: java.lang.RuntimeException: Stub! ... сообщение об ошибке. Если я вручную создам правильную конфигурацию запуска (с модулем, классом или методом), я смогу успешно запустить ее со всеми версиями Android Gradle, кроме 2.3.x, где я получаю изображенное сообщение об ошибке. Может ли быть проблемой тот факт, что он не распознает его как Instrumentation сам по себе? - person janpio; 06.10.2017
comment
Также перейдите в Файл->Недействительные кеши/Перезагрузить - person The Riddler; 06.10.2017
comment
Я не думаю, что это что-то с моей установкой Android Studio - такое же поведение при первоначальной установке на другом компьютере. Я клонировал источник AS и искал строку сообщения об ошибке, но не смог найти Это :/ - person janpio; 06.10.2017
comment
Скачал 2.3.3, протестировал, все работает нормально. Кажется, что-то с настройкой вашего проекта вызывает проблему. Это недавний проект, над которым вы работаете? Несколько вещей, которые нужно проверить: * Версия плагина Gradle (убедитесь, что она 2.3.3) * Тестовые зависимости (JUnit,..etc) — убедитесь, что они обновлены (junit должен быть 4.12) * buildToolsVersion * minSdkVersion - person The Riddler; 09.10.2017
comment
Проект недавний. Вот список версий (в ветке с нерабочей версией gradle и плагином): github.com/janpio/separate_test_module/blob/broken-gradle/ Я поигрался с ними, но не смог найти работающую комбинацию. (Спасибо, что остаетесь со мной) - person janpio; 10.10.2017
comment
Посмотрю, как только смогу. Никаких забот. Нам нужно сильное инженерное сообщество! - person The Riddler; 10.10.2017
comment
Я бегло посмотрел, и кажется, что вы не изменили URL-адрес дистрибутива Gradle здесь github.com/janpio/separate_test_module/blob/broken-gradle/ . Измените все вхождения, чтобы они соответствовали версии Gardle, которую вы пытаетесь использовать. - person The Riddler; 22.10.2017
comment
Плагин Gradle 2.3.x соответствует Gradle 3.3, не так ли? (См. developer.android.com/studio/releases/) Я думаю, что изменил оба: github.com/janpio/separate_test_module/commit/Я ничего не пропустил? - person janpio; 23.10.2017
comment
Да, это правильно. Теперь я немного запутался, какую версию Gradle и плагина вы пытаетесь использовать. Я скачал проект и смог запустить его с com.android.tools.build:gradle:3.0.0-beta6 и gradle-4.1-all.zip. - person The Riddler; 25.10.2017
comment
Он работает с версиями плагинов до 2.2.3 и от 3.0.0-beta1 и выше. Он не работает с 2.3.x (2.3.0 -> 2.3.3). (каждый раз с соответствующей версией Gradle). Вот почему github.com/janpio/separate_test_module/tree/broken-gradle плагин 2.3.3 и Gradle 3.3 - person janpio; 25.10.2017
comment
Провел дополнительное исследование версий, на которые вы указали, и обнаружил, что ваши тестовые зависимости в отдельном тестовом модуле github.com/janpio/separate_test_module/blob/broken-gradle/ не объявлены как androidTestCompile. Именно по этой причине он запускается с конфигурацией JUnit вместо инструментальных тестов Android. Однако его изменение не решает проблему, так как androidTestCompile не распознается. Я предполагаю, что это связано с настройкой параметров sourceSets, но у меня нет решения. - person The Riddler; 26.10.2017
comment
Также нашел эту ветку plus.google.com/+GiridharKari/posts/LX3eDYf7deZ, в которой может пригодиться. Поделитесь своим прогрессом, когда вы продвигаетесь вперед с этой проблемой. - person The Riddler; 26.10.2017
comment
Да, ваши комментарии относительно инструментальных тестов JUnit и Android имеют смысл, Android Studio не указывает, что это инструментальный тест Android. Решение: Конфигурацию можно исправить вручную, затем тесты нормально идут. Если, конечно, вы не используете плагин Gradle 2.3.x (этот вопрос);) - person janpio; 26.10.2017