2013-08-29 74 views
1

我有一個JUnit測試。但是當我使用「Run as - > JUnit」時,它會成功,而當我使用「Cover as - > JUnit」時,它會失敗。這是爲什麼?代碼確實有一些問題。在代碼中,我使用了一些遺留代碼(我無法更改它),它包含一個太大的方法(超過64KB)。爲什麼「作爲 - > JUnit運行」不能暴露這個問題?爲什麼JUnit「Run as-> JUnit」和「Cover as - > Junit」具有不同的行爲?

+0

是什麼時候「封面爲」失敗時顯示的信息有什麼用呢?原因是什麼? – zibi

回答

3

當您使用「封面爲」運行時,檢測會在您的方法中添加額外的代碼(在測試中每次檢測到每行/表達式時報告)。如果你的消息已經非常大,那麼額外的儀器可能會超過64K的限制。

這並不意味着有什麼錯誤的代碼 - 它只是意味着你將不能夠在覆蓋測試:(

+0

合理的。有沒有辦法解決這個問題? – Edmond

+1

@Edmond:如果你沒有任何方法讓這個方法變得更小,我懷疑不是 - 至少不是你現在使用的任何覆蓋工具您可能會發現不同的覆蓋率工具具有不同的儀器足跡 - 您甚至可以減少當前工具的儀器使用 –

+0

是否可以告訴覆蓋率工具跳過此類,該類實際上是自動生成的類(這就是爲什麼我們失去了它的控制權大小)並不重要。 – Edmond