#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"
...
}
...
}