你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> 使用命令行工具運行Xcode 7 UI Tests

使用命令行工具運行Xcode 7 UI Tests

編輯:IOS開發基礎

2800x1800.jpg

原文:Run Xcode 7 UI Tests from the command line
蘋果在Xcode 7中引入了一項新技術UI Tests,允許開發者使用Swift或Objective C代碼來進行UI測試。直到現在一個可行的方法是使用UI Automation。通過UI Tests,可使用Xcode適當調試問題以及使用Swift或Objective C而無需處理JavaScript代碼。
首先為UI Tests創建一個新的target

03.png

在測試分區下,選中Cocoa Touch UI Testing Bundle:

04.png

現在打開Project UI Tests文件夾中最新創建的Project_UI_Tests.swift文件。在底部你會有一個名為testExample的空方法。注意看圖中的光標,並點擊底部紅色的記錄按鈕。

05.png

這樣就會打開你的app。現在你可以四處點擊下,並與你的應用程序進行交互。完成後,再次點擊紅色錄制按鈕。

06.png

生成的代碼類似下邊的記錄。我已經在生成的代碼行之間添加了幾個示例XCTAsserts。在Xcode中使用CMD + U即可運行你的應用程序,並且是同時運行單元測試和UI Tests。
現在你已經可以使用CLI運行測試了,無需進一步的調整,不過我們想讓UI Tests在一個單獨的scheme中,點擊scheme並選中New Scheme:

下載.png

選中最新創建的UI Test target並確認。

下載 (1).png

如果你計劃在CI-server上運行測試,請確保最新創建的scheme已經啟用了Shared選項。點擊scheme並選擇Manage Schemes來打開會話。

從CLI打開測

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

明確所用Xcode的版本非常重要,我們使用的是最新的測試版本:

export DEVELOPER_DIR="/Applications/Xcode-beta.app"

你甚至可以將測試版作為你新的默認運行版本:

sudo xcode-select --switch "/Applications/Xcode-beta.app"

UI測試運行時終端輸出示例:

Test Suite 'All tests' started at 2015-06-18 14:48:42.601
Test Suite 'TempCam UI Tests.xctest' started at 2015-06-18 14:48:42.602
Test Suite 'TempCam_UI_Tests' started at 2015-06-18 14:48:42.602
Test Case '-[TempCam_UI_Tests.TempCam_UI_Tests testExample]' started.
2015-06-18 14:48:43.676 XCTRunner[39404:602329] Continuing to run tests in the background with task ID 1
    t =     1.99s     Wait for app to idle
    t =     2.63s     Find the "toggleButton" Switch
    t =     2.65s     Tap the "toggleButton" Switch
    t =     2.65s         Wait for app to idle
    t =     2.66s         Find the "toggleButton" Switch
    t =     2.66s         Dispatch the event
    t =     2.90s         Wait for app to idle
    t =     3.10s     Find the "toggleButton" Switch
    t =     3.10s     Tap the "toggleButton" Switch
    t =     3.10s         Wait for app to idle
    t =     3.11s         Find the "toggleButton" Switch
    t =     3.11s         Dispatch the event
    t =     3.34s         Wait for app to idle
    t =     3.54s     Find the "toggleButton" Switch
    t =     3.54s     Tap the "MyButton" Button
    t =     3.54s         Wait for app to idle
    t =     3.54s         Find the "MyButton" Button
    t =     3.55s         Dispatch the event
    t =     3.77s         Wait for app to idle
    t =     4.25s     Tap the "Okay" Button
    t =     4.25s         Wait for app to idle
    t =     4.26s         Find the "Okay" Button
    t =     4.28s         Dispatch the event
    t =     4.51s         Wait for app to idle
    t =     4.51s     Find the "toggleButton" Switch
Test Case '-[TempCam_UI_Tests.TempCam_UI_Tests testExample]' passed (4.526 seconds).
Test Suite 'TempCam_UI_Tests' passed at 2015-06-18 14:48:47.129.
 Executed 1 test, with 0 failures (0 unexpected) in 4.526 (4.527) seconds
Test Suite 'TempCam UI Tests.xctest' passed at 2015-06-18 14:48:47.129.
 Executed 1 test, with 0 failures (0 unexpected) in 4.526 (4.528) seconds
Test Suite 'All tests' passed at 2015-06-18 14:48:47.130.
 Executed 1 test, with 0 failures (0 unexpected) in 4.526 (4.529) seconds
** TEST SUCCEEDED **

生成截圖

無需額外的工作,可輕輕松得到截圖。可為命令添加derivedDataPath選項,你可以告訴Xcode在什麼地方儲存測試結果,包括生成的截圖。

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

Xcode會自動為每個測試操作生成截圖,關於生成數據的更多信息,可查看Michele寫的Test Logs in Xcode.

下載 (2).png

下一步

想要為多種語言和多種設備類型創建截圖,你可能會需要像snapshot這樣的工具,snapshot使用UI Automation, 不過現在已經棄用了。我目前用的是最新版的snapshot,可充分利用新UI Tests的功能,這樣如果程序出錯,那snapshot能展示更多細節結果和錯誤信息。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved