2017-01-13 125 views
0

我使用evosuite 1.0.3版本。我能夠成功地生成測試類和project_info.xml顯示0.75代碼覆蓋它不過是75%(0.75 * 100)。evosuite代碼覆蓋不匹配jacoco覆蓋

但是,當我與Jacoco代碼覆蓋工具集成在一起,我沒有看到75%的覆蓋率。它僅顯示爲13%。這可能是什麼原因?

下面是我已發出MVN evosuite輸出:信息。

[INFO]的項目類的總數:12

[INFO]的項目是可測試的類數:12

[INFO]生成的測試包的數量:10

[INFO]總體覆蓋率:0.7541666666666665

我不應該看到jacoco報告還爲75%的總體覆蓋率覆蓋面?請幫忙。

回答

0

沒有Minimal, Complete, and Verifiable example很難說確切的原因,並提出一些精確的解決你的問題,但是引用EvoSuite documentation about code coverage

...測試(CUT)的類必須被啓動,即它的字節碼需要被修改。

不幸的是,那些字節碼修改可能與用於測量代碼覆蓋率的工具(例如JaCoCo,EclEmma,Cobertura,Clover和JMockit)完成的字節碼設置衝突。因此,它很可能最終,你得到0%的代碼覆蓋率...

在此期間,如果你得到0%的覆蓋率,你可以試試...

還有一些在JaCoCo兩種模式 - 所謂的「上即時」儀器儀表與Java代理是默認推薦,和所謂的「離線」的儀器沒有代理。在沒有例子不清楚JaCoCo是如何在你的情況下推出的,但是除了對EvoSuite文檔頁面也許JaCoCo「離線」的儀器可以幫助解決辦法的 - 引用JaCoCo documentation about offline instrumentation

一個JaCoCo的主要好處是Java代理,它可以即時處理類。這簡化了代碼覆蓋分析了很多,因爲沒有預先儀表和需要的類路徑的調整。然而,可以有地方上的即時儀器是不適合的,例如情況:

  • ...
  • 衝突與做動態類文件轉換代理等。

對於這樣的情景類文件可以預先儀表與JaCoCo ...