Android espresso测试在本地传递,但在Firebase测试实验室失败

时间:2017-10-05 13:13:19

标签: android firebase automation android-espresso firebase-test-lab

我有android espresso测试的问题。 测试在本地传递但在FTL上失败。这是一个简单的测试

onView(allOf(withId(R.id.text_supercategory_name), withText("Air conditioners"))). check(matches(withText("Air conditioners")));

此测试在本地传递。在FTL上我有错误:

android.support.test.espresso.NoMatchingViewException: No views in hierarchy found matching: (with id: blablabla:id/text_product_verdict and with text: is "Air conditioners")

我不明白,我看到我的测试id/text_product_verdict中未使用的ID ...以及来自其他活动的此ID ... 测试活动是正确的

@Rule public ActivityTestRule<HomeActivity> mActivityTestRule = new ActivityTestRule<>(HomeActivity.class);

我检查了FTL上测试失败的视频,并在模拟器上看到了很多通知 img from FTL

我认为该问题是来自Google环聊的粘性通知,并尝试使用--no-auto-google-login标记运行我的测试。但是有相同的结果。在FTL上通过onView(withText("Air conditioners")).check(matches(isDisplayed()));测试。

有人可以帮忙解决问题吗?

3 个答案:

答案 0 :(得分:1)

使用浓缩咖啡时,我也发现了此问题。然后,我将Barista用于浓缩咖啡包装。这有助于我选择使用R.id.name或R.string.name还是“ name”作为选择器。 这里单击他们的GitHub中的示例:

clickOn(R.id.button);
clickOn(R.string.button_text);
clickOn("Next");

答案 1 :(得分:0)

这件事也发生在我身上。在某些设备中,Firebase测试实验室似乎无法识别TIME_STAMP上的 id 。我们可以改用 res-name

在日志中查看视图层次结构,并使用DATETIME(3)

在其中获取res-name
withId(R.id.text_supercategory_name)

答案 2 :(得分:0)

视图的 ID(整数值)在每次构建中都会动态更改。当应用程序的相同版本和测试 apk 上传到 firebase 时,它​​会起作用。但是,当上传不同的构建时,它会失败。