运行一组特定的XCUITests

时间:2016-08-25 15:15:06

标签: ios xcode xcode-ui-testing

问题在于我希望能够运行特定数量或一组XCUITests,例如在Calabash中。在Calabash中,您可以运行一组标记有特定标记的测试。 所以,我想知道我能做些什么来实现这个目标吗? 我知道我可以通过捆绑甚至计划拆分一组测试,但这不是我想要的。

所以,我发现你只能运行特定的测试,但不能运行一组测试。

编辑:

基本上我希望能够运行如下命令:

xcodebuild test -workspace -scheme -destination -only-testing:UITestBundle -tag

通过这种方式,我只能测试与项目的小区域相关的特定功能,因此不需要运行可能需要花费大量时间的所有bundle。我可以在CI中设置它。每当我需要运行不同的测试集时,就没有必要更改我的代码。

2 个答案:

答案 0 :(得分:3)

您可以通过Launch参数来管理执行,并根据相应的值跳过测试。创建一个像IsSkippingTests这样的启动Arg,并根据您的要求设置一个值,然后在每个测试开始时,您可以添加如下代码:

guard LA.valueOfLA("-IsSkippingTests") == "requiredFunctionality" else { return }

定义一个结构LA,它将包含valueOfLA静态方法:

public struct LA {
static public func valueOfLA(key: String) -> String? {
    var arguments = NSProcessInfo.processInfo().arguments

    if let index = arguments.indexOf(key) where index + 1 < arguments.count {
        return arguments[index + 1]
    }

    return nil
}

因此,根据您提供的值,您可以执行一组测试并跳过您不想要的测试。您还可以设置多个值并修改valueForLA方法来处理它。

答案 1 :(得分:2)

现在可以使用xcode 8.检查此视频

https://developer.apple.com/videos/play/wwdc2016/409/

enter image description here