本文使用蘋果的是自帶的XCTAssert 框架進行單元測試,網(wǎng)上有很多小白教程都是從零開始新建項目自動勾選Unit Tests,但是我的項目很老,開始的時候并沒有勾選,所以只能走新建Target的路了。
1、需要項目中新建單元測試的target (target 不懂的兄弟,請自行百度吧...)



上圖中1、就是我們新建的Target名稱,這個可以隨意取,叫啥都行。2、是項目的賬號Team,這個也不用管,就是用項目賬號的Team即可,如果是真機調(diào)試的話。3、是工程,也不需要設(shè)置。上圖中4 需要注意,這是需要單元測試的Target對象,如果說你的項目中存在多個Target的話,那就要注意了,選擇好哪一個才是要進行單元測試的target
2、此時target 已經(jīng)創(chuàng)建成功,這個時候就是工程配置的問題了,下面我就講一下我遇到的兩個問題,希望能對相同問題的兄弟有所幫助
(1).? 最普遍的當(dāng)然是Pod 的第三方庫報錯not found,這個是因為原來Unit Tests 是新建的Pod的路徑?jīng)]有,需要重新引入

將途中的兩處none 都設(shè)置成pod 路徑即可。
(2) 這個錯誤我也不知道怎么描述,控制臺的輸出是6535:3315297] Failed to load test bundle from file:///private/var/containers/Bundle/Application/3C3B55CF-0E95-425F-B7AF-D4A158C74A25/zhumuH5.app/PlugIns/YsxTests.xctest: Error Domain=NSCocoaErrorDomain Code=3587 "dlopen_preflight(/var/containers/Bundle/Application/3C3B55CF-0E95-425F-B7AF-D4A158C74A25/zhumuH5.app/PlugIns/YsxTests.xctest/YsxTests): Library not loaded: /System/Library/Frameworks/CoreServices.framework/CoreServices
? Referenced from: /var/containers/Bundle/Application/3C3B55CF-0E95-425F-B7AF-D4A158C74A25/zhumuH5.app/PlugIns/YsxTests.xctest/YsxTests
? Reason: image not found" UserInfo={NSLocalizedFailureReason=軟件包已損壞或丟失必要的資源。, NSLocalizedRecoverySuggestion=請嘗試重新安裝軟件包。

這里我也沒辦法了,直接來了一波清除緩存,將Xcode資源庫的DrivedData 全部干掉然后在BuildSettings里搜索legacy. 將屬性設(shè)置成YES

(3)這個時候還是有問題,但是日志并沒有顯示錯誤,搜索看一下自己新建Target。iOS Deployment. 設(shè)置的是多少,我這里是Xcode。自動設(shè)置的是12.1,有些第三方庫不支持,直接改成9.0就可以build Succeed 了
(4)最后一步,這里都成功了,但是當(dāng)我們引入動態(tài)庫SDK的頭文件的時候,運行會直接失敗,提示SDK找不到,搜索Search Paths。按照我們最開始選擇的Unit測試的Target 引入了幾個SDKpath,這里也都設(shè)置一邊就OK了

到這里,我的工程新建的單元測試就可以成功編譯了,希望可以幫助到您