gradle connectedAndroidTest返回"No test found",但adb shell am instrument可以找到测试

Sug*_*gre 8 android gradle android-testing android-studio android-gradle-plugin

我们有一个库项目,多个应用程序依赖于它.单元测试在库项目中.我们能够从Android Studio中的依赖项目运行测试,但是

./gradlew :[DependentProject]:connectedAndroidTest 
Run Code Online (Sandbox Code Playgroud)

总是返回"没有找到测试,无事可做".

通过观察,我发现在Android Studio中,它似乎只执行gradle任务:

:[DependentProject]:assembleDebug, :[DependentProject]assembleDebugTest
Run Code Online (Sandbox Code Playgroud)

然后使用adb安装目标并测试apk,adb shell是运行测试的工具.

由于connectedAndroidTest依赖于这两个任务,我安装了它生成的目标和测试apks,并手动调用了instrument命令,测试开始了.

adb shell am instrument -w com.package.test/android.test.InstrumentationTestRunner
Run Code Online (Sandbox Code Playgroud)

然后问题来了,connectedAndroidTest在哪里寻找测试,以及为什么adb仪器可以找不到测试?如何解决这个问题?

Nic*_*ert 3

我有同样的问题,我通过添加以“test”开头的方法来解决它

@Test
public void testWTF() throws Exception {
    assertTrue(true);
}
Run Code Online (Sandbox Code Playgroud)

所有其他带有@Test注释的方法也可以工作!

太神奇了不是吗?我在这里找到了答案:没有使用测试运行程序“JUnit 4”进行测试