Как запустить инструментальный тест с AndroidX на приложении, а также на модуле библиотеки? - PullRequest
0 голосов
/ 03 января 2019

У меня есть проект Android, который содержит 2 модуля.

  1. Модуль библиотеки Android
  2. 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, а затем также отлично работает для обоих модулей.

Следовательно, я запутался и не могу найти решение этой ситуации на данный момент. Я с нетерпением жду вашей помощи, если у кого-нибудь есть какие-либо подсказки / предложения / ответы?

...