ios xcode11單元測試實踐

2021-10-07 04:44:17 字數 2013 閱讀 9354

最近在做ios的變異測試,有一部分是需要根據覆蓋率精準推薦單測用例,其中設計到ios的單測,今天我們就聊聊 ios的單測

man xcodebuild即可檢視xcodebuild所支援的選項

xcodebuild test -workspace '***.xcworkspace' -scheme *** -destination 'platform=ios simulator,id=82d4328f-f862-4bc5-a3b2-41f044e444ab' -enablecodecoverage yes    -default-test-execution-time-allowance 0.5 -test-timeouts-enabled yes -maximum-test-execution-time-allowance 0.5  -resultbundlepath '***.xcresult' -only-testing ***/yyy/zzz
-only-testing-skip-testing輸入格式是testtarget[/testclass[/testmethod]]-destination可以通過命令instruments -s devices獲取,選擇符合工程的裝置(因為工程可能會設定最低作業系統要求)

只編譯不執行

xcodebuild build-for-testing  ***
只執行不編譯

xcodebuild test-without-building
編譯+執行

xcrun xccov view --archive --file '***' demo.xcresult
並行測試可以同時在多個目標上進行測試。我們可以按下面的方式來在不同測試目標上並行測試:

xcodebuild test

-destination 'platform=ios,name=iphone x'

-destination 'platform=ios,name=ipad'

並行測試最好先把模擬器預先啟動起來,啟動模擬器命令如下:

xcrun instruments -w 模擬器
xcode11.4 增加了執行單元測試的超時引數,在啟用-test-timeouts-enabled 選項後為單個測試配置預設執行時間,請傳遞 -default-test-execution-time-allowance 選項。要對測試的執行時間強加絕對上限(如果它通過executetimeallowance api請求更多時間),請傳遞 -maximum-test-execution-time-allowance 選項。但是在實際的實踐中發現 -maximum-test-execution-time-allowance引數不生效,超時時間永遠是1分鐘

iOS Xcode11建立新工程

1.關於scenedelegate的理解 參考 對於xcode11新工程的建立,多了乙個scenedelegate類,對於這個類的理解其實就是為了實現ipados支援多視窗的結果。對於不需要支援多視窗的專案,完全可以不用考慮這個類,直接刪除,按照之前的建立工程方式建立即可,不知道這樣的理解是不是對的...

11 單元測試

本節 樣例見code utest資料夾 在日常開發中,我們通常需要針對現有的功能進行單元測試,以驗證開發的正確性。在go標準庫中有乙個叫做testing的測試框架,可以進行單元測試,命令是go test 測試檔案通常是以xx test.go命名,放在同一包下面。現在假設現在需求是 完成兩個複數相加,...

可以進行單元測試麼 Task11 單元測試

本節 樣例見code utest資料夾在日常開發中,我們通常需要針對現有的功能進行單元測試,以驗證開發的正確性。在go標準庫中有乙個叫做testing的測試框架,可以進行單元測試,命令是go test 測試檔案通常是以xx test.go命名,放在同一包下面。現在假設現在需求是 完成兩個複數相加,我...