在运行androidTest目录里的文件时结果全部都为0passed,0tests
没有任何一个通过,包括系统自带的ExampleInstrumentedTest类里的方法都是0passed,0tests
网上大多都指出了两个造成这个结果的原因,即:没有正确配置测试环境,或者没有正确编写测试代码.
显然排除第二个,自带的方法都不能通过,肯定不是编写错误,而且在前两周这些代码我还是能运行的,也都能通过。
➡️为了检查是不是没有正确配置测试环境,我检查了自己的build.gradle,包括版本号都改成一样的了。
正确写法及结构为:
android {
// ...
defaultConfig {
// ...
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
// ...
}
dependencies {
// ...
// 添加测试依赖项
androidTestImplementation 'androidx.test:runner:1.4.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.0'
// ...
}
然而还是不能解决这个问题。
➡️当我试图使用清理项目构建过程中生成的临时文件和输出结果
./gradlew clean
和测试应用程序的整体性能和功能,检查应用程序在真实设备上的运行情况是否符合预期
./gradlew connectedCheck
BUILD SUCCESSFUL ,经过各种修改后./gradlew connectedCheck 证明程序是符合预期的
当我再一次运行ExampleInstrumentedTest的时候,依然0passed,0tests
➡️因为之前确实成功通过过集成测试,于是换了一个项目测试,另外一个项目成功通过(当然也有一些曲折的过程,但最终还是通过了)
于是将可通过的这个项目里的build.gradle悉数对应配置到当前这个项目的build.gradle里,包括版本号。
再次运行 ===>>>> BUILD SUCCESSFUL
你以为成功了?笑话,当然还是失败了,他依然坚定不移的是0passed,0tests(暴怒😡怒砸键盘 哐当~)
而BUILD SUCCESSFUL 从头到位,第一次运行的时候打印结果也是这样的,没有其他任何信息,test-result.pb文件打开也是空的,什么都没有。
成功方案:||||||||||||||||||||||||||||||||||||
➡️可能调取不到上下文(这里推测的原因是测试内容不在app文件夹下,我写的在另一个module文件夹里面,app文件夹里的AppExampleInstrumentedTest类可以运行通过)
运行成功通过了!!!!!!!!!!!
在前面一系列操作的基础上,到app目录下的androidTest写就解决了这个问题!
这里就没有去验证前面的操作是不是必要的,直接在前面的基础上就写了
虽然解决了,我还是很疑惑,为什么这一次需要在app的文件夹下才能获取到上下文,在前一段时间,我同样运行过这个项目里的同一个方法,当时基本每个方法都可以通过验证。现在却需要更改W 。W