当所有测试一起运行时,Android Instrumented 测试失败
Posted
技术标签:
【中文标题】当所有测试一起运行时,Android Instrumented 测试失败【英文标题】:Android Instrumented tests fail when all run together 【发布时间】:2017-03-22 14:17:21 【问题描述】:我正在使用 espresso 运行 android 仪器测试。
我有超过 70 个测试要运行,它们都点击了我的应用程序的不同部分。
当我将每个测试作为一个单独的测试运行时,它们都可以工作,并且我得到一个绿色的测试结果。
当我同时运行它们时(右键单击 androidTest 文件夹 -> 点击运行),其中一些会失败,说找不到视图。
在不同的运行中,不同的测试都失败了。我认为这可能是这里进展得太快了。
你们对如何解决这个问题有什么建议吗? 提前非常感谢您!
【问题讨论】:
【参考方案1】:在Espresso setup instructions 的Setup your test environment 部分中,您有:
在您的设备上,在“设置”->“开发者选项”下禁用以下 3 个设置:
窗口动画比例
过渡动画比例
动画持续时间比例
动画可能与您的怀疑有关:这里有些事情进展得太快了
您也可以在测试方法中使用Thread.sleep(1000);
(毫秒)来延迟某些调用
无论如何,上面没有任何代码,这只是一个猜测......
【讨论】:
谢谢。关闭动画并没有多大作用。插入暂停有助于使其更稳定。但并不是真正的 100%。这也让我的测试变得非常缓慢。你能提示我一些我可以发布的有助于理解项目的代码吗?因为在我看来,我只是有很多不同的 UI 测试,每个测试做不同的事情并在不同的时间崩溃。 -> 我将进一步调查,看看我是否能找到一种模式,它的测试完全失败以及在什么条件下失败。再次感谢!以上是关于当所有测试一起运行时,Android Instrumented 测试失败的主要内容,如果未能解决你的问题,请参考以下文章
使用 Android-Espresso 运行多个测试时出现内存不足异常
将 ProGuard / Dexguard 与多个 Android Studio 模块一起使用