fastlane - 快照不起作用

时间:2017-10-22 15:19:20

标签: swift xcode xctest fastlane fastlane-snapshot

我想使用fastlane快照创建屏幕截图。我在三种不同情况下遇到问题。

案例1: 我有一个集合视图,其中包含一个图像和一个标签的单元格。 点击一个单元格将打开一个VC(让我们称之为editVC),这是一个用于编辑从集合视图中点击的项目的表单。 editVC嵌入在导航控制器中。

记录测试如下

func testOne() {

    let app = XCUIApplication()
    app.tabBars.buttons["Collection View"].tap()
    app.children(matching: .window).element(boundBy: 0).children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .other).element.children(matching: .collectionView).element.tap()
        snapshot("01")


}

测试从xcode成功运行。

问题是当我从终端运行“fastlane snapshot”时,生成的屏幕截图是针对集合视图而不是editVC。

案例2: 视图控制器(称为homeVC),其滚动视图包含多个水平滚动的集合视图。 有问题的集合视图还包含具有一个图像和标签的单元格。点击单元格将打开一个视图控制器(vc2),它将显示项目详细信息。这个vc2嵌入在导航控制器中,并使用storyBoard.instantiateViewController()和present()方法调用。

以下是测试记录点击vc2。此测试运行正常,但“fastlane snapshot”不会为VC2生成屏幕截图。它为homeVC生成。

func testVC2() {

    let app = XCUIApplication()
    app.tabBars.buttons["Home"].tap()

    let scrollViewsQuery = app.scrollViews
    scrollViewsQuery.otherElements.containing(.staticText, identifier:"label").children(matching: .collectionView).element(boundBy: 1).tap()
    snapshot("vc2")
}

我尝试使用expectation()添加 waitForExpectations(timeout:10,handler:nil),但即使在10秒后,vc2似乎也没有发生转换。

案例3: Vc具有包含图像和标签的单元格的表格视图。 记录用于从表格单元格中打开并打开另一个具有集合视图的VC的UI测试如下所示,并且失败并显示错误找不到与查找匹配的匹配:从输入匹配类型ScrollView的后代

func test123() {
    XCUIApplication().tabBars.buttons["tab1"].tap()

    let app = XCUIApplication()
    let scrollViewsQuery = app.scrollViews
    scrollViewsQuery.otherElements.containing(.staticText, identifier:"cellitem").children(matching: .collectionView).element(boundBy: 1).tap()


}

这些案件可能是什么原因? 希望我能够清楚地解释这个设置。

环境 - xcode 9.0

由于 阿希什

0 个答案:

没有答案