Инструментальные тесты не найдены с помощью пользовательского инструментария — условный инструментарий?

#android #android-instrumentation

#Android #android-инструментарий

Вопрос:

У меня есть работающее приложение для Android с манифестом, содержащим этот <instrumentation> узел

 <instrumentation
    android:name=".MyInstrumentation"
    android:targetPackage="my.package"/>
  

У меня также есть инструментальные тесты, но когда я их запускаю, я получаю это

 $ adb shell am instrument -w -r-e debug false my.package.test/my.package.MyInstrumentation
Client not ready yet..
Started running tests
Test running failed: Unable to find instrumentation info for: ComponentInfo{my.package.test/my.package.MyInstrumentation}android.util.AndroidException: INSTRUMENTATION_FAILED: my.package.test/my.package.MyInstrumentation
. onError: commandError=true message=INSTRUMENTATION_FAILED: my.package.test/my.package.Instrumentation
  

и тесты не выполняются.

Если я удалю объявление инструментария из манифеста, он работает нормально, когда я запускаю подобные тесты, я получаю это

 $ adb shell am instrument -w -r -e debug false my.package.test/androidx.test.runner.AndroidJUnitRunner
Client not ready yet..
Started running tests
Tests ran to completion.
  

androidx.test.runner.AndroidJUnitRunner выполняется ли инструментарий.

Это происходит, когда я запускаю тесты из Android Studio, а также при выполнении ./gradlew connectedAndroidTest .

Как я могу сообщить gradle или Android Studio, что я хочу запускать тесты с AndroidJUnitRunner инструментарием? При этом все еще разрешены мои собственные.

Ответ №1:

добавьте эту строку в свой файл build.gradle и попробуйте

 android {
    ...
    defaultConfig {
        ...
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        ...
    }
    ...
}