10

每次我们在 UI 中更改某些内容时,我们都必须手动准备并截取 375 个(= 5 个屏幕截图 * 5 种设备类型 * 15 种语言)屏幕截图以用于 iTunes Connect 的列表。

我正在尝试“利用”iOS 9 的新 UI 测试来自动为每种语言准备和截取这些屏幕截图。这应该可以节省大量时间并为我们的用户提供更好的体验,因为我们没有经常更新屏幕截图,因为涉及的工作量很大。

我在网上找不到太多帮助,可能是因为这个功能太新鲜了。所以这里有两个基本问题,希望我们能找到一种方法来实现它。

  1. 是否可以通过 UI 测试 API 将屏幕截图保存到磁盘?

  2. 是否可以为 XCTestCase 进行全新安装?

4

3 回答 3

11

这与 Xcode 7 并不完全相关,但您可以使用snapshot自动截屏。

于 2015-06-18T06:38:48.740 回答
5

是的,您可以使用 Xcode UI 测试创建屏幕截图。

  • 为您的测试创建自定义方案(可选但推荐)。
  • 使用 CLI(终端)运行测试。像这样的东西:
xcodebuild -workspace App.xcworkspace \
     -scheme "SchemeName" \
           -sdk iphonesimulator \
           -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.0' 
           test

完成此操作后,要生成屏幕截图,请将路径添加到您想要屏幕截图的位置,如下所示:

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

./output 将告诉 Xcode 为每个测试截取屏幕截图。您可以在这里找到详细信息

于 2015-07-28T09:09:21.460 回答
3
  1. 是否可以通过 UI 测试 API 将屏幕截图保存到磁盘?

您可以手动保存它们(通过“在预览中打开”按钮),但我不知道在测试期间收集它们的 API。归档雷达!(https://bugreport.apple.com

  1. 是否可以为 XCTestCase 进行全新安装?

我不知道实际重新安装您的应用程序的方法XCTestCase,但是您可以在运行所有测试之前将其卸载,或者您可以使用setUp类方法或实例方法XCTestCase确保您的应用程序之前处于全新状态您的测试已运行(例如重置用户默认值等)。

于 2015-06-18T06:47:42.387 回答