我有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()));
测试。
有人可以帮忙解决问题吗?
答案 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)
withId(R.id.text_supercategory_name)
答案 2 :(得分:0)
视图的 ID(整数值)在每次构建中都会动态更改。当应用程序的相同版本和测试 apk 上传到 firebase 时,它会起作用。但是,当上传不同的构建时,它会失败。