objective-c - xcode自動化測試 - xctassertnil



單元測試與XCode 4的鏈接錯誤? (1)

您的測試包需要額外的設置:

  • Bundle Loader設置為$(BUILT_PRODUCTS_DIR)/AppName.app/AppName (使用您的應用程序名稱替換兩個位置的AppName)
  • 測試主機設置為$(BUNDLE_LOADER)

(如果您從頭開始創建項目並啟用單元測試,則會為您設置這些項目。但是如果您將單元測試包添加到現有項目中,則它們不會。)

我想在我的XCode應用程序中為類編寫一些邏輯單元測試。 在Xcode 4中,我在Project Navigator中單擊了項目名稱,然後從底部單擊Add Target。 我選擇了其他的“Cocoa Touch Unit Testing Bundle”,給新目標一個“測試”的“產品名稱”,並完成。

因為我要測試的類是作為現有應用程序目標的一部分編譯的,所以對於我的新“測試”目標,我立即轉到Build Phases選項卡並將我現有的應用程序目標添加為唯一的目標依賴項。

然後我轉到創建的tests.m文件,導入我要測試的類(在它的ReleasePlanManager下面,並調用它的一個方法。但鏈接器失敗,出現如下錯誤:

Undefined symbols for architecture i386:
  "_OBJC_CLASS_$_ReleasePlanManager", referenced from:
      objc-class-ref in tests.o
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

所以無法找到類,即使(根據我的理解)添加應用程序目標(它是其中的一部分)應該足夠了嗎?

任何幫助將不勝感激。 謝謝!





ocunit