我正在开发一个基本的 iOS 教程应用程序,并认为我也可以开始EarlGrey
使用它来学习一些东西。我正在自动化的测试有这个流程 -
我有一个很大的 UITableView,并用我生成的一些随机单词预先填充它。这些可能很长,我的 TableView 中可能有 100 多个单元格。
在我的测试中,我随机选择生成的单词之一并在单元格中搜索它。每个单元格都有以下 UI:
| | | |Word| |Word-Count| | UIImage | | | |
所以在EarlGrey
-
- (void)setup {
[super setup];
GeneratorClass dataSource =
[[GeneratorClass alloc] initWithRandomData];
self.tableView.dataSource = dataSource;
_randomSelectedValue = dataSource.randomValue;
}
- (void)testTableElementVisible {
id<GREYMatcher> *cellMatcher = grey_allOf(grey_minimumVisiblePercent(0.0f),
grey_interactable(),
grey_isKindOfClass([UITableViewCell class]),
grey_text(_randomSelectedValue), nil);
[[EarlGrey selectElementWithMatcher:cellMatcher]
asserWithMatcher:grey_sufficientlyVisible()];
[[EarlGrey selectElementWithMatcher:cellMatcher]
performAction:grey_tap()];
}
但是,在 Jenkins 上,此测试需要很长时间才能运行,并且"Timeout (currently set to 30) occurred when looking for elements."
由于屏幕被冻结而失败,虽然我可以在本地看到点击发生,但我无法让它通过它。有什么方法可以加快这个测试,或者我在这里做错了什么导致 EarlGrey 冻结?