gpt4 book ai didi

android - 我需要放慢 espresso 测试用例的运行速度

转载 作者:行者123 更新时间:2023-11-30 00:46:25 25 4
gpt4 key购买 nike

我正在使用 espresso 2.2.1 进行安卓测试。我运行的测试用例很少,有些因为 espresso 运行太快而失败。元素甚至没有加载显示,这就是测试用例失败的原因。有什么办法可以减慢这些运行速度吗?

最佳答案

您可以创建特定的匹配器,它将等待带有 id 的 View 或带有文本的 View 或其他任何内容:

public static ViewAction waitViewWithMatcher(Func1<View, Boolean> predicate, final long millis) {
return new ViewAction() {
@Override
public Matcher<View> getConstraints() {
return isRoot();
}

@Override
public String getDescription() {
return "wait for a specific during " + millis + " millis.";
}

@Override
public void perform(final UiController uiController, final View view) {
uiController.loopMainThreadUntilIdle();
final long startTime = System.currentTimeMillis();
final long endTime = startTime + millis;

do {
for (View child : TreeIterables.breadthFirstViewTraversal(view)) {
if (predicate.call(child)) {
return;
}
}

uiController.loopMainThreadForAtLeast(50);
}
while (System.currentTimeMillis() < endTime);

throw new PerformException.Builder()
.withActionDescription(this.getDescription())
.withViewDescription(HumanReadables.describe(view))
.withCause(new TimeoutException())
.build();
}
};
}

然后你可以像这样使用它:

onView(isRoot()).perform(EspressoTestUtil.waitViewWithMatcher(v -> withId(R.id.view_id).matches(v), 30000));

它等待 ID 为 view_id 的 View ,30000 毫秒。

关于android - 我需要放慢 espresso 测试用例的运行速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41716358/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com