2010-06-14 109 views
1

我有一個使用安裝程序的Cocoa應用程序。我希望能夠在代碼上運行代碼覆蓋(安裝完成後)。如何在已安裝的Cocoa應用程序上運行Gcov?

這不是通常的單元測試場景,其中一個二進制文件將運行一組測試。相反,有問題的測試會在運行時與UI和應用程序後端進行交互,因此我希望能夠在知道Gcov正在分析它並對其執行測試的情況下啓動應用程序。

任何想法?

更新

感謝mustISignUp。爲了澄清爲什麼我問這個問題:

我犯的錯誤是想對象,.gcno和.gcda文件必須與二進制文件一起安裝(從而使安裝程序很困難)。碰巧,文件的原始位置與代碼代碼一起硬連線到代碼中。

我使用的解決方案是在構建機器上壓縮代碼並將其放在測試機器的磁盤上。 lcov(或只是gcov)可以從那裏運行。或者,.gcda文件將在磁盤上創建,並且必須將其複製回包含源代碼的機器。

無論哪種方式,源代碼不必在安裝和運行時出現,但如果您希望將結果恢復爲lcov樣式,則生成的coverage計數器文件必須與源代碼一致。

回答

1

應用程序需要用正確的GCC標誌進行編譯,這會將分析指令插入到代碼中。這不是你可以打開和關閉的東西。即您的代碼在編譯時被修改以輸出覆蓋信息。

所以,如果你用正確的標誌的編譯應用程序,它將會發射覆蓋數據,如果你沒有,它不會(你肯定不會希望它爲應用你要分發) 。

相關問題