我在使用Robotium进行Coursera课程练习时遇到麻烦......我会尝试解释更好的理解方法。
我有一个活动,在onCreate方法上以编程方式创建了TextView,我确信View是正确编码的,实际上,当我使用自己的设备运行Robotium测试时,如果屏幕打开,它会通过所有测试,但如果我运行测试我的屏幕关闭/设备锁定Robotium在assertTrue中使用waitForView方法失败。
问题是我不能确定在Coursera平台上运行测试的屏幕是否打开(并且它不会导致它失败,并且当我尝试运行测试时出现相同的错误屏幕关闭)。 我认为它与Robotium有关...但是我不知道如何让我的TextView可见,因为Robotium可以在它上面等待它。
答案 0 :(得分:0)
Robotium
是一个检测测试框架,它靠近您应用的UI,因此只有在看到按钮时才会点击按钮。
我不知道您正在谈论的Coursera课程,以及为什么您认为他们的测试是在屏幕锁定上运行 - 这当然是不可能的,但我可以发誓如果您使用Espresso而不是Robotium它也会失败。
在手机/模拟器功能Stay awake
上查找。
您可能需要先解锁设备上的“开发人员选项”。为此,选择Settings
而不是点击About phone
,最后点击Build version
几次。
根据Unlocking the emulator or device for Android test
我在运行时遇到了不可靠的解锁问题 Robotium测试。我没有找到程序化解锁的解决方案 可靠运行的设备,但我做了两件事 变通。
只需停用锁定屏幕(
Settings -> Security -> Screen lock -> None
)即可。不理想,但在一天结束时,可靠的测试是重要的。启用“保持清醒”设置,以防止屏幕由于不活动而关闭(
Settings -> Developer options -> Stay awake
)。一些 OEM /手机要么没有这个选项,要么仍然关闭,所以 对于那些讨厌的设备,我安装了[KeepScreenOn] [1] app。警告:每天24小时在主屏幕上打开屏幕可能会导致屏幕老化/重影。我不确定是否 这是永久性的,但请注意这一点。在我们的例子中,我们正在使用 专用测试设备,所以这不是什么大问题。
另请注意,因为手机的屏幕都会打开 有时,您可能希望调暗亮度以减少电池电量 (有时通过USB充电可能会很慢。)
我认为你也可以在uiautomator
方法中使用setUp
代码,这会检查屏幕是否被锁定。如果是true
,请解锁设备屏幕。