У меня есть проект Android, который содержит 2 модуля.
- Модуль библиотеки Android
- Android-модуль приложения для библиотеки
У меня есть настройки, необходимые для проверки зависимостей, конфигурация Gradle одинакова для обоих проектов.
Когда я запускаю тест из демонстрационного приложения, он запускается без каких-либо проблем.
Но когда тот же пример тестового кода запускается из библиотечного модуля, он не может найти тесты.
Вот журнал, который я вижу на вкладке «Выполнить» в студии android.
Тест демонстрационного модуля - результат
$ adb shell CLASSPATH=$(pm path androidx.test.services) app_process / androidx.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.paymentdemo.test/androidx.test.runner.AndroidJUnitRunner -e debug false -e class 'com.cardstream.paymentdemo.ExampleInstrumentedTest' androidx.test.orchestrator/androidx.test.orchestrator.AndroidTestOrchestrator
Client not ready yet..
Started running tests
Tests ran to completion.
Проверка модуля библиотеки - результат
$ adb shell CLASSPATH=$(pm path android.support.test.services) app_process / android.support.test.services.shellexecutor.ShellMain am instrument -r -w -e targetInstrumentation com.cardstream.payment.test/androidx.test.runner.AndroidJUnitRunner -e debug false -e class 'com.cardstream.payment.ExampleInstrumentedTest' android.support.test.orchestrator/android.support.test.orchestrator.AndroidTestOrchestrator
Client not ready yet..
Started running tests
Test running failed: No test results
Empty test suite.
Из приведенных выше журналов я вижу разницу в службах тестирования , используемых обоими модулями.
Демо-модуль - androidx.test.services
Модуль библиотеки - android.support.test.services
из приведенных выше замечаний я пытался привести их к сходному поведению, но, к сожалению, я не могу найти точного и правильного ответа или вариантов.
Конфигурация для Инструментария Runner для обоих модулей
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Несколько тестовых зависимостей для обоих модулей
testImplementation 'junit:junit:4.12'
testImplementation 'org.robolectric:robolectric:4.1'
androidTestImplementation 'androidx.test:core:1.1.0'
androidTestImplementation 'androidx.test:core-ktx:1.1.0'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.ext:junit-ktx:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
androidTestImplementation 'androidx.test:rules:1.1.1'
androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestUtil 'androidx.test:orchestrator:1.1.1'
Я создал новый проект с модулем библиотеки и запустил тесты, он отлично работает для обоих модулей (с поддержкой библиотек).
Я перенес недавно созданный проект с AndroidX, а затем также отлично работает для обоих модулей.
Следовательно, я запутался и не могу найти решение этой ситуации на данный момент. Я с нетерпением жду вашей помощи, если у кого-нибудь есть какие-либо подсказки / предложения / ответы?