我正在尝试将图像传递给UI测试。为此,我使用启动参数。
let bundle = NSBundle (forClass: self.dynamicType)
let images = ["img1", "img2"]
.map {
bundle.URLForResource($0, withExtension: "jpg")!
}
.map {
NSData(contentsOfURL: $0)!
}
.map {
$0.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: .allZeros))
}
XCUIApplication().launchArguments= ["IMAGES", images.joinWithSeparator("_")]
我用同样的方法打开它们。一个或两个小图像如预期一样工作,但如果我使用大图像,我会得到:
操作无法完成。(FBSOpenApplicationErrorDomain错误1。)
是否有任意数量的字符可以作为启动参数传递?
终端可以告诉您命令行的最大长度:
$ sysctl kern.argmax
kern.argmax: 262144
该值包括环境所需的空间。直接在参数中传递Blob可能是个坏主意。
在这个过程中,您应该传递URL并读取文件的内容。