2015-04-30 30 views
116

我正在使用xcode的swift,默認情況下它會創建一個引用XCTest的測試文件。無法加載XCTest的底層模塊

當我將目標成員設置爲我的主項目時,它會導致此錯誤 「無法爲XCTest加載底層模塊」。

如果未設置此目標成員資格,則測試運行正常並且一切正常。

PS:我是新來的迅速,這可能是一個愚蠢的問題(請賜教)

+10

有沒有愚蠢的問題蚱蜢,只有愚蠢的提問者。 ;-)大問題,每個人讀這個都會有同樣的問題。 –

回答

99

主要項目不符合XCUnit框架進行鏈接。您應該爲您的項目創建一個單獨的測試目標(如果尚不存在),並將測試源文件添加到該目標。

  1. 在Project Navigator中選擇您的項目。這將在編輯器中打開項目的設置。
  2. 單擊列中您的目標欄底部的「+」按鈕。
  3. 如果您正在使用iOS項目模板,請選擇iOS > Test > iOS Unit Testing Bundle

    如果您正在使用OS X項目模板,請選擇OS X > Test > OS X Unit Testing Bundle

+2

同時對於iOS,它被稱爲iOS UITesting Bundle(用於UI測試)或iOS單元測試包(它用於單元測試...) – kuzdu

118

仔細檢查相關文件是否不在主目標中,而只是測試目標。只有測試目標纔會有該框架導入。

+13

如果有幫助。選擇你的'非測試'目標 - >構建階段 - >編譯源。確保你的「ClassTest.swift」不在正常的構建目標中。 –

+0

如果它位於主包和測試包中,如何將它從主包中移除。 –

+0

它的工作原理,謝謝! – drewpts

1

確保在選擇測試框架時爲所有模塊選中目標成員關係。您可以通過選擇查看 - >實用程序 - >顯示文件檢查器來查看目標成員資格選項

12

您剛將測試文件/類添加到主目標中,而不是錯誤地添加到測試目標中。就那麼簡單。

解決方案:

1)「構建階段」選項卡上卸下「編譯來源」列表測試文件爲主要目標

2)添加相同的文件到「編譯源代碼」,「構建階段」選項卡上爲測試目標

必須解決的問題

4

這也許有點晚了,但你必須做的是:

點擊文件>氖w> Target> iOS單元測試包。

然後在那裏添加你的測試。這對我有效。問題是我創建項目時沒有選擇創建單元測試。 希望這可以幫助別人。

2

此問題在您的項目中發生兩次。

  1. 當您在創建新項目時不在項目中添加UnitTestingBundle時。
  2. 當你在你的項目中安裝CocoaPods時,並不是每次。

1:答案:

  • 轉到文件單擊文件。

  • 然後你看到第一個選項新點擊它。

  • 點擊它後,你會看到一些選項點擊目標。

  • 然後在搜索欄搜索IOS單元測試包和添加問題就解決了。

  • 如果編譯器不能給你添加這個權限然後嘗試第二種方法時給出下面。

2回答CocoaPod問題:

  • 轉到產品看產品。

  • 點擊清理或按cmd + k。

  • 問題解決了。

0

我做了以上所有,但仍然沒有被允許訪問我想測試的方法。但是在我編寫任何測試用例之前編寫了一次這個項目,然後就可以測試這些方法了。所以請嘗試一下,讓我知道它是否解決了任何問題。

+0

這並沒有真正回答這個問題。如果您有不同的問題,可以通過單擊[提問](https://stackoverflow.com/questions/ask)來提問。您可以[添加賞金](https://stackoverflow.com/help/privileges/set-bounties)在您擁有足夠的[聲譽](https://stackoverflow.com/help/)後吸引更多關注此問題什麼聲譽)。 - [來自評論](/ review/low-quality-posts/17123204) –