2010-09-02 172 views
1

有沒有可能在檢查.Net版本代碼覆蓋範圍時遇到麻煩? (IE方法內聯或類似的編譯器魔術?)使用版本代碼覆蓋代碼

+0

是的。編譯器經常內嵌代碼。 – Grozz 2010-09-02 20:00:21

+1

Inline是在IL代碼中發生,還是代碼執行時(在運行時)?代碼覆蓋率如何:在運行時使用IL代碼或生成的機器代碼? – Benoittr 2010-09-02 20:40:46

回答

1

代碼覆蓋工具(包括NCover和VSTS)使用的代碼單元是在PDB中找到的順序點(當您將一個代碼覆蓋工具調試時斷點)。

因此,如果您沒有生成您的PDB文件,您將不會獲得代碼覆蓋率指標。 要回答你的問題,只要你生成PDB文件(沒有自己測試它,但我確實是95%的東西),你可以在發佈模式上有代碼覆蓋率指標

你不會有問題像編譯器內聯那樣發生在IL - > asm彙編運行時,由CLR Just in Time編譯器執行。

+0

在我們的構建服務器Id上,更重要的是有一個單一的構建來支持測試和覆蓋(並且儘可能靠近我們的產品代碼)。所以我會繼續發佈代碼並查看它的行爲。謝謝。 – Benoittr 2010-09-03 13:45:53