2017-07-31 193 views
0

代碼覆蓋率以及Powermockito與jacoco

在我的項目,我們使用powermockito,爲代碼覆蓋率jacoco API。我們使用@preparefortest({xyzimpl.class,abcd.class})註釋。在代碼覆蓋範圍上,xyzimpl.java代碼覆蓋範圍未涵蓋。是否有任何解決上述情況的代碼覆蓋的工作。如果我們在@preparefortest註釋中刪除了類測試,則在其他鏈接中說上述註解不會得到codecoverage。PowerMockito與Jacoco代碼覆蓋

回答

0

他們的documentation很清楚:它不起作用(除非你讓他們的「離線」儀器工作 - 我沒有看到工作示例)。

由於其性質,PowerMock(ito)有很長的歷史而不是處理代碼覆蓋率。請記住:@PrepareForTest正在做的是:將您的產品字節代碼替換爲PowerMock 生成的東西。

在這個意義上,你只有這些選項:

  • 如果你絕對需要模擬靜電/新呼叫,那麼你可以嘗試使用JMockit(唯一的其他框架,允許嘲弄調用靜態/新)
  • 學習如何編寫可測試代碼代碼 - 並避免需要這樣的「特殊」嘲諷框架。這甚至會提高您的產品的質量。
+0

我會更清楚,PowerMock不會替代生成的代碼。它做了什麼 - 字節碼修改。 PowerMock用'if語句'封裝了一些字節碼指令。像AspectJ或JaCoCo一樣。 –

+0

正如其他地方所說:它仍然必須*生成*新的東西來包裝現有的字節碼,對吧?! – GhostCat