我目前正在使用Android检测测试我的示例应用。默认情况下,项目为我创建AndroidTest
文件夹。我只是在文件夹中添加了更多测试用例。
我曾经使用expresso
来触发UI按钮,但是现在我想测试只使用androidTest,但是,androidTest似乎没有测试我的发布版本。在这种情况下,我有两个变体productionRelease
和stageDebug
。
每次我通过
开始项目./gradlew mysample:connectedCheck
或
./gradlew mysample:connectedAndroidTest
仅测试
Task :mysample:connectedStageDebugAndroidTest
如果我想手动启动任务
./gradlew mysample:connectedProductionReleaeAndroidCheck
它抱怨mysample中找不到的任务
* What went wrong:
Task 'connectedProductionReleaseAndroidTest' not found in project ':mysample'.
不是connectCheck应该测试我项目中的所有变种吗? (StageDebug
和ProductionRelease
)
来自task --all
mysample:connectedCheck - Runs all device checks on currently connected devices.
mysample:connectedAndroidTest - Installs and runs instrumentation tests for all flavors on connected devices.
答案 0 :(得分:1)
刚试过......可以简单地运行./gradlew mysample:testDebugUnitTest
和./gradlew mysample:testReleaseUnitTest
- 它运行调试或发布版本的测试。例如,可以将注释@RequiresDevice
添加到测试中。一个需要硬件传感器。
productionRelease
和stageDebug
似乎过于复杂(并且它也与命名的其余部分不匹配 - 除非还有productionDebug
和stageRelease
,因此在更长的任务名称中,建议缩短......
buildTypes {
debug {}
release {}
}
这时我跑./gradlew mysample:connectedAndroidTest
我宁愿得到
任务执行失败':mysample:connectedDebugAndroidTest'。 com.android.builder.testing.api.DeviceException:没有连接的设备!
关闭Android Studio(以及它启动的ADB守护程序)后,我可以在硬件设备上运行测试。只有installDebugAndroidTest
任务,但没有installReleaseAndroidTest
任务。 testBuildType 'release'
可能针对发布版本运行测试 - 问题只是androidTestImplementation
很可能不会被包含(非常无用)。