![](/img/trans.png)
[英]How do I get code coverage for Xcode for my Objective-C app?
[英]How do I get code coverage for tests and build for iPhone in Xcode 4?
我有幾個單元測試的項目,我想測量覆蓋率。 因此,我按照如何使用CoverStory和網絡上的其他內容詳細說明。
我將-fprofile-arcs
和-ftest-coverage
到我的測試目標和測試中的目標,並鏈接到指定的/Developer/usr/lib/libprofile_rt.dylib
。
它的工作原理! 當我在iPhone模擬器下運行測試方案時,我得到了我的代碼覆蓋率,我的測試和應用程序構建和運行。
但是,當我回到實際iPhone硬件上的Run方案時,我發現了libprofile_rt.dylib的鏈接錯誤。 具體來說,我明白了
ld:找不到-lprofile_rt的庫
我懷疑這里的libprofile_rt實際上是一個用於Mac硬件的庫,iPhone顯然無法鏈接到為Mac構建的二進制文件。
我的問題是如何在iPhone硬件上運行並獲得我的代碼覆蓋率?
我懷疑我可以使用僅用於測試的Debug目標副本來執行此操作,但這還有另外一個維護目標的麻煩。 有沒有其他方法讓這個工作? 我做傻事嗎?
可能有點遲,但實際上你可以。 本演示文稿中介紹了幻燈片32至34。
花了我相當長的時間才找到這個隱藏的寶石。 希望這可能有助於此頁面的未來訪客。
答案是: 您無法在設備上運行並同時獲得保險。 獲得覆蓋的唯一方法是在模擬器上:制作調試目標的副本,設置覆蓋范圍以及不在該目標上的內容,並在模擬器中使用測試運行該目標。
我在stackoverflow上回答了這個問題的所有細節: iOS上的代碼覆蓋率在Lion上使用Xcode 4.2
這個問題的可能答案如下: https : //stackoverflow.com/a/5140459
訣竅是通過Xcode組織器將* .gcda文件從App的Documents目錄中取出,因為它們當然會在設備上生成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.