簡體   English   中英

如何在Xcode 4中獲得測試和構建iPhone的代碼覆蓋率?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM