片状浓咖啡测试

时间:2015-10-12 08:56:52

标签: android android-espresso

Dunno为什么浓咖啡间歇性地找不到清晰可见的元素。 它失败了:

failed: android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: with id: com.justyoyo.staging.debug:id/content_loading_progress_bar

令人沮丧的是,我在本地物理设备,AWS设备场或Genymotion的模拟器上运行测试并不重要。在检查元素是否可见之前,我添加显式等待SystemClock.sleep(5000);并不重要。 我连续工作2,3次,然后就失败了。

为了向您提供更多见解,我们正在使用Dagger,Mortar以及我们在UI线程上运行测试,因为在单独的线程上运行测试更糟糕。

2 个答案:

答案 0 :(得分:0)

我遇到过很多类似的问题。我已按照这些步骤操作,并有所帮助。

  1. 当您的测试因 NoMatchingViewException 失败时,请检查视图层次结构的输出,看看您是否看到了您正在搜索的 ID/文本。如果你发现它,视图可能不完全可见,你需要滚动到正确的位置/通常确保它没有被覆盖。甚至从状态栏弹出的通知也可能挡住您的视线并破坏您的测试。
  2. 如果您在视图层次结构中没有找到该视图,请尝试找出 espresso 实际查看的布局。有时我会弹出对话框,用浓缩咖啡评估布局而不是下面的活动。
  3. 在您的视图膨胀的地方放置一个断点,并确保您确实到达那里。

但一般很难排除故障...

答案 1 :(得分:-1)

Espresso正在启动您的活动,但无法找到ID为content_loading_progress_bar的任何视图。这个问题不是来自Espresso,而是来自您的测试。

确保您正确开始正确的活动。关于AWS Device Farm和Espresso测试,我建议您遵循此template。但要小心,要使其在AWS Device Farm上运行,所有测试方法都必须以“testXYZ()”开头,否则服务器场将无法检测到它们。