2013-02-19 33 views
2

我一直在試圖找出如何在命令行中運行單元測試運行在命令行IOS單元測試,這樣我們就可以自動執行它們。 我正在使用XCode 4.5.2,並構建一個IOS應用程序。如何在Xcode的4.5

首先,我嘗試使用這樣的:

xcodebuild -target "Unit Tests" -configuration "Debug (test syncserver)" -sdk iphonesimulator6.0 clean build TEST_AFTER_BUILD=YES 

這將運行編譯,但測試沒有運行。 因此,圍繞閱讀其他的解決方案在這裏後,我安裝了IOS-SIM卡,並設置我的目標之後運行此腳本: (請注意,我不得不更換「TEST_HOST」與「CODESIGNING_FOLDER_PATH」爲TEST_HOST似乎並不存在的出現次數。在我的版本)

#!/bin/bash 

if [ "$RUN_UNIT_TEST_WITH_IOS_SIM" = "YES" ]; then 
    test_bundle_path="$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.$WRAPPER_EXTENSION" 
    echo ios-sim launch "$(dirname "$CODESIGNING_FOLDER_PATH")" --setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle="$test_bundle_path" --setenv XCInjectBundleInto="$CODESIGNING_FOLDER_PATH" --args -SenTest All "$test_bundle_path" 
    ios-sim launch "$(dirname "$CODESIGNING_FOLDER_PATH")" --setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle="$test_bundle_path" --setenv XCInjectBundleInto="$CODESIGNING_FOLDER_PATH" --args -SenTest All "$test_bundle_path" 
    echo "Finished running tests with ios-sim" 
else 
    "${SYSTEM_DEVELOPER_DIR}/Tools/RunUnitTests" 
fi 

現在,當我像以前一樣運行相同xcodebuild聯編的命令,我得到這個:

/bin/sh的-c 「\」/用戶/ johnlussmyer/TU /ondeck/OnDeck/build/OnDeck.build/Debug(測試 同步服務器)-iphonesimulator /單位 Tests.buil d/Script-4CECE52812D5043F0063EC6A.sh \「」ios-sim launch /Users/johnlussmyer/tu/ondeck/OnDeck/build/Debug(test syncserver)-iphonesimulator --setenv DYLD_INSERT_LIBRARIES =/../../Library /PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection --setenv XCInjectBundle = /用戶/ johnlussmyer/TU/ondeck/OnDeck /建造/調試(測試 同步服務器)-iphonesimulator/UnitTests.app --setenv XCInjectBundleInto = /用戶/ johnlussmyer/tu/ondeck/OnDeck/build/Debug (test syncserver)-iphonesimulator/UnitTests.app --args -SenTest全部 /Users/johnlussmyer/tu/ondeck/OnDeck/build/Debug(測試 同步服務器)-iphonesimulator/UnitTests .app [DEBUG]會話不可能是 開始:錯誤域= DTiPhoneSimulato rErrorDomain代碼= 1「未知 錯誤。」的UserInfo = {0x7fcf04b03190 = NSLocalizedDescription未知 錯誤,DTiPhoneSimulatorUnderlyingErrorCodeKey = -1}運行完畢 測試與IOS-SIM什麼嘗試下一個

有什麼建議?

回答

3

從日誌中,似乎你有幾個錯誤的設置。正確的語法是:

ios-sim launch YourApp.app 
--setenv DYLD_INSERT_LIBRARIES=/../../Library/PrivateFrameworks/IDEBundleInjection.framework/IDEBundleInjection 
--setenv XCInjectBundle=YourTest.octest 
--setenv XCInjectBundleInto=YourApp.app/YourApp 
--args -SenTest All YourTest.octest 

你可以看到

  1. 應用程序路徑是啓動命令後不正確
  2. XCInjectBundle應該是你octest,而不是應用程序
  3. XCInjectBundleInto應該是你的應用程序二進制路徑,而不是app文件夾
  4. 最後的參數也應該是你octest

如果你不能看到TEST_HOST在環境變量中,你可能希望通過他們去找到一些propers那些使你的bash腳本正確。