如何在UI测试(Xcode)上关闭自动截图

Cha*_*man 10 iphone xcode screenshot xcode-ui-testing

我正在通过Jenkins运行Xcode的UI测试.每个步骤都会截取屏幕截图,因此在运行套件一段时间后,Mac会占用其所有硬盘空间.有谁知道你是否可以关闭Xcode UI Testing的自动截图,所以使用的空间更少?

cak*_*s88 5

我不确定如何关闭屏幕截图,但您可以将屏幕截图放在将被删除的位置:

xcodebuild -workspace App.xcworkspace \
   -scheme "SchemeName" \
       -sdk iphonesimulator \
       -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.0'
       -derivedDataPath '/dev/null'
       test
Run Code Online (Sandbox Code Playgroud)

请注意-derivedDataPath '/dev/null'屏幕截图的位置。这会将屏幕截图放在空设备上,这是一个特殊的设备,它会丢弃写入其中的信息。

希望有帮助,测试愉快!

  • 谢谢康纳。无论如何使用xcode UI而不是终端命令来做这个?目前主要以这种方式运行测试。 (3认同)

Lir*_*dav 5

另一种方法是通过在Xcode中执行以下操作,将Xcode Scheme配置为不截屏:

  1. 编辑方案(Cmd + Shift + <)
  2. 点击左侧的测试配置
  3. 点击顶部的选项
  4. 取消选中“自动捕获屏幕截图”。另外,如果您只需要屏幕截图以检查失败,则可以选中此复选框,也可以选中“在每次测试成功时删除”。

Xcode编辑方案

  • 谢谢回复。我不认为Xcode是使用`xcodebuild`构建的,但实际上我发现这似乎是默认的。(确保不是这种情况,因为它们以某种方式在服务器上成功进行了1次测试,并且认为这是正常的。)我还发现您可以通过.xctestrun`文件指定`SystemAttachmentLifetime`和`UserAttachmentLifetime`,因此放在此处万一有人需要 (2认同)

Cha*_*man 2

我没有找到可靠的方法来停用屏幕截图,但是通过在詹金斯中设置以下内容来删除它们占用的大小:

Jenkins > 打开作业 > 配置 > 构建 > Xcode > 高级构建设置 > 勾选标记为“清理测试报告”的框

现在,这使测试结果的大小更加易于管理,这意味着我可以不断地让我的测试套件在詹金斯中运行。

希望这对其他人有帮助。