问题在于我希望能够运行特定数量或一组XCUITests,例如在Calabash中。在Calabash中,您可以运行一组标记有特定标记的测试。 所以,我想知道我能做些什么来实现这个目标吗? 我知道我可以通过捆绑甚至计划拆分一组测试,但这不是我想要的。
所以,我发现你只能运行特定的测试,但不能运行一组测试。
编辑:
基本上我希望能够运行如下命令:
xcodebuild test -workspace -scheme -destination -only-testing:UITestBundle -tag
通过这种方式,我只能测试与项目的小区域相关的特定功能,因此不需要运行可能需要花费大量时间的所有bundle。我可以在CI中设置它。每当我需要运行不同的测试集时,就没有必要更改我的代码。
答案 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)