2015-06-18 29 views
10

每当我们改变用户界面中的某些内容时,我们必须手动准备并为iTunes Connect的列表拍摄375(= 5截图* 5设备类型* 15种语言)屏幕截图。使用Xcode7的UI测试为App Store创建应用截图

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

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

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

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

回答

11

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

+1

觉得这不回答UI测试API的问题,但我会接受,因为它甚至以更好的方式完美,或许可以解决问题。 – Kof

+0

@SantaClaus所有FASTLANE工具是非常有用的http://fastlane.tools/ – rounak

+0

@rounak我看快照时:) –

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

您可以手动保存文件(通过“打开预览”按钮),但我不知道一个API的测试过程中收集它们。提交雷达! (https://bugreport.apple.com

  • 是否有可能有一个干净的安装一​​个XCTestCase?
  • 我不知道的方式其实就是重新安装每一个XCTestCase的应用程序,但你可以uninstall it before running all of your tests,或者您也可以use the setUp class method or instance methodXCTestCase,以确保您的应用程序处于新鲜状态的测试之前,运行(例如重置用户默认值等)。

    +2

    关于#2,如何重置'setUp'上的用户默认值/文件目录?在XCUIApplication参考中找不到任何相关内容。 – Kof

    +0

    @Kof:在这里看到:http://stackoverflow.com/questions/32351149/how-do-i-reset-the-application-data-after-each-test-with-xcode-7-ui-testing,和这里http://www.adamkaump.com/thoughts/uitests – Peacemoon

    5

    是的,您可以使用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为每个测试拍摄截图。 您可以详细here

    相关问题