我想知道當iOS應用程序在Xcode bot上運行單元測試時如何生成gcda文件。在Xcode bot上運行單元測試後生成.gcda文件
我使用this blog來配置Xcode以生成測試覆蓋率文件並使用利用lcov的腳本生成報告。我可以始終在我的開發計算機上創建覆蓋率文件和報告,但是當機器人嘗試相同的過程時,不會顯示任何.gcda文件。當機器人叫__gcov_flush()
,我可以看到下面的錯誤日誌中:
profiling:/Library/Server/Xcode/Data/BotRuns/Cache/c0jhd288-c473-c473-2432-f8219hdh98dh89/DerivedData/Build/Intermediates/AppName.build/Debug-iphonesimulator/appName.build/Objects-normal/i386/ClassName.gcda: cannot open
我知道這是應用程序的gcov的沖洗過程中,因爲我把日誌直接之前和呼叫」
NSLog(@"[application performSelector:@selector(gtm_gcov_flush)]; will be CALLED");
[application performSelector:@selector(gtm_gcov_flush)];
NSLog(@"[application performSelector:@selector(gtm_gcov_flush)]; was CALLED");
後發生
注:gtm_gcov_flush
只要求__gcov_flush()
沒有別的
搜索「個人資料gcda:無法打開」導致我here,但我已經繼弗洛建議的要求翼上述博客鏈接。可能有一些權限問題,但這似乎不大可能,因爲Xcode是生成gcda文件的。
我已經檢查了/Library/Server/Xcode/Data/BotRuns/
,/Users/username/Library/Developer/Xcode/DerivedData/
和/var/_xcstest
gcda文件的目錄及其子目錄,並且沒有看到。但是,/Library/Server/Xcode/Data/BotRuns/Cache/c0jhd288-c473-c473-2432-f8219hdh98dh89/DerivedData/Build/Intermediates/AppName.build/Debug-iphonesimulator/appName.build/Objects-normal/i386/
中有gcno,o,d和dia文件(應該有gcda文件)。
就像我說的,我在本地運行時沒有問題。腳本XcodeCoverage/getcov正在我的方案的存檔後操作階段被調用。我在我的開發mac上以及通過CI服務器上的Xcode服務使用Xcode 5.0.2。單元測試正在與XCTest框架一起運行。
感謝您的幫助提前!