【问题标题】:How to turn off automatic screenshots on UI Testing (Xcode)如何在 UI 测试 (Xcode) 上关闭自动屏幕截图
【发布时间】:2016-02-29 11:00:08
【问题描述】:

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

【问题讨论】:

  • 截图保存在哪里?

标签: iphone xcode screenshot xcode-ui-testing


【解决方案1】:

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

  1. 编辑方案 (Cmd+Shift+
  2. 点击左侧的测试配置
  3. 点击顶部的选项
  4. 取消选中“自动捕获屏幕截图”。或者,如果您只想要失败的屏幕截图,您可以保持选中状态,但也可以选中“每次测试成功时删除”。

【讨论】:

  • 在使用-resultBundlePath xcbuild 参数时,有什么方法可以通过 CLI 指定它吗?因此,理想情况下,成功的测试截图应该被删除,而不成功的则应保留。
  • 按照我的说明查看 Xcode 中的构建日志,您或许可以找出参数。
  • 感谢您的回复。我不认为 Xcode 使用 xcodebuild 构建,但我实际上发现这似乎是默认设置。 (确定情况并非如此,因为他们以某种方式在服务器上进行了 1 次成功测试,并认为这是常态)我还发现您可以通过 .xctestrun 文件指定 SystemAttachmentLifetimeUserAttachmentLifetime 所以放在这里万一有人需要
【解决方案2】:

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

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

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

希望有所帮助,祝测试愉快!

【讨论】:

  • 谢谢康纳。无论如何使用xcode UI而不是终端命令来做到这一点?目前主要以这种方式运行测试。
  • @CharlieSeligman 选择 Xcode > Preferences,然后单击 Locations。那里有一个“派生数据”字段,您可以在其中设置客户位置。似乎您可以将其设置为 /dev/null 并具有相同的影响
  • 这一切正常,直到我重新启动了 mac。现在得到“清理构建文件夹时出错:由于未知错误而无法删除构建文件夹”。不要以为有人对此有解决方案吗?
  • @CharlieSeligman 我添加了一个可以解决您的问题的答案:stackoverflow.com/a/48015499/62。您必须先恢复对派生数据设置所做的更改。
【解决方案3】:

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

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

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

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-11-04
    • 2016-02-23
    • 2013-01-26
    • 2014-08-21
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多