Использование тестов Xcode7 UI для создания скриншотов приложений для App Store

Каждый раз, когда мы меняем что-то в пользовательском интерфейсе, мы должны вручную подготовить и взять скриншоты 375 (= 5 скриншотов * 5 устройств * 15 языков) для списка iTunes Connect.

Я пытаюсь "использовать" новое тестирование IOS 9 для автоматической подготовки и снятия этих скриншотов для каждого языка. Это должно сэкономить огромное количество времени и обеспечить лучший опыт для наших пользователей, поскольку мы часто не обновляли скриншоты из-за тяжелой работы.

Я не мог найти много помощи в Интернете, возможно потому, что эта функция слишком свежая. Итак, вот два основных вопроса, надеюсь, мы сможем найти способ сделать это.

  • Можно ли сохранить скриншот на диск через API тестирования пользовательского интерфейса?

  • Возможно ли иметь чистую установку для XCTestCase?

Ответ 1

Это не полностью связано с Xcode 7, но вы можете автоматизировать снятие снимков с snapshot.

Ответ 2

Да, вы можете создавать скриншоты с помощью теста Xcode UI Testing.

  • Создайте пользовательскую схему для своих тестов (необязательно, но рекомендуется).
  • Используйте 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 делать скриншоты для каждого теста. Вы можете найти это подробно здесь

Ответ 3

  • Можно ли сохранить скриншот на диск через API тестирования пользовательского интерфейса?

Вы можете вручную сохранить их (через кнопку "открыть в режиме предварительного просмотра" ), но я не знаю API для их сбора во время тестов. Загрузите радар! (https://bugreport.apple.com)

  1. Возможно ли иметь чистую установку для XCTestCase?

Я не знаю, как реально переустановить приложение для каждого XCTestCase, но вы можете удалить его перед запуском всех ваших тестов, или вы может использовать метод или метод класса setUp на XCTestCase, чтобы убедиться, что ваше приложение находится в новом состоянии до запуска ваших тестов (например, reset пользовательские настройки по умолчанию и т.д.).