我有一个包含2个模块的android项目。
我已经设置了必需的测试依赖项,两个项目的Gradle配置相同。
当我从演示应用程序运行测试时,它运行没有任何问题。 但是,当从库模块运行相同的示例测试代码时,它将无法找到测试。
这是我可以从android studio的“运行”标签中看到的日志。
演示模块测试-结果
$ 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
从以上观察结果中,我试图将它们隐瞒为相似的行为,但是不幸的是,我无法找到任何准确有效的答案或选择。
两个模块的Instrumentation 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迁移了新创建的项目,然后在这两个模块上都可以正常工作。
因此,我感到困惑,并且目前无法解决这种情况的解决方案。如果有人有任何线索/建议/答案,我期待您的帮助?