回答
萬一你忘記做這些:
- 是否使用@Test標註你的測試?
- 您是將該類作爲JUnit測試用例還是從覆蓋按鈕運行?
我不確定問題的原因是什麼,導致它總是爲我工作。你有沒有從eclipse本身安裝它?嘗試卸載它,然後從eclipse重新安裝。以下是如何做到這一點,以防萬一:
- 在Eclipse中,點擊「幫助」>「安裝新軟件」
- 點擊「添加」,然後鍵入以下內容:
- 名稱:EclEmma(或任何你想要的名稱)
- 路徑:http://update.eclemma.org/
- 選擇EclEmma,並安裝
根據官方網站,Eclemma是基於JaCoCo庫的Eclipse代碼覆蓋插件。
當你要使用外Eclipse的代碼覆蓋引擎,你應該包括項目的Maven配置(POM)裏面的插件Jacoco,如下面的(this code was copied from the Agile Engineering blog):
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.6.0.201210061924</version>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>test</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
運行測試只需鍵入的命令行工具如下:
mvn clean test
我無法插入[Eclemma](http://www.eclemma.org/)和[Emma網站]的超鏈接(http://emma.sourceforge.net/maven-emma-plugin/)在上面的帖子。 –
我也有同樣的問題,我得到了一個GWT項目,而不是maven ...,因爲Renanlf說,總是獲得0%的覆蓋率。 – Dipak
現在我意識到你只是想使用Eclipse內部的工具的報告...
如何在Eclipse對話框的代碼覆蓋率?您是否嘗試過使用mouse right click on this dialog to export session (report)或File -> Export?
是的,這只是導出覆蓋的執行情況,導出的報告繼續以0%覆蓋率=/ – renanlf
因此,我有兩個建議: 1.嘗試重新安裝Eclemma插件(如果您使用更新站點進行安裝它最後一次嘗試從市場上安裝它); 2。如果以前沒有工作,試着直接從Maven使用JaCoCo庫(正如我在其他文章中所解釋的)來隔離問題,確保問題只是關於Jacoco(eclipse插件)上方的層,而不是來自此發動機。 –
我使用eclemma 2.3.2和它的基於Eclipse的工作完美
我只需要在我的pom.xml
<dependency>
<groupId>org.jboss.arquillian.extension</groupId>
<artifactId>arquillian-jacoco</artifactId>
<version>1.0.0.Alpha6</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jacoco</groupId>
<artifactId>org.jacoco.core</artifactId>
<version>0.7.1.201405082137</version>
<scope>test</scope>
</dependency>
然後我生成項目,更新添加這些依賴如預期
Maven項目配置和運行覆蓋插件我只是遇到了這個問題,它是由配置不正確的類路徑造成的。當單元測試被執行時,它們針對一個編譯的jar(在eclipse之外編譯的實際源代碼)執行,而不是我實際的源代碼。從我的類路徑中刪除jar後,單元測試正確地打我的包源。
如果您正在使用eclemma,你需要添加jacoco依賴。如果jacoco已添加並仍,你都面臨這個問題,請參閱該eclemma faq: "Why does a class show as not covered although it has been executed?"
它說,
首先確保執行數據已經收集。爲此,請選擇HTML報告右上角的「會話」鏈接,並檢查是否列出了有問題的類。如果列出但未鏈接,則執行時的類是不同的類文件。確保您在運行時使用完全相同的類文件以生成報告。請注意,某些工具(例如EJB容器,模擬框架)可能會在運行時修改您的類文件。
因此,Mockito/PowerMockito可能會導致此問題。您可能已經實例化了要測試的類,並在該對象上執行了PowerMockito.spy()。您將看到測試用例沒有錯誤地正確執行,但Jacoco不會在其報告中改進代碼覆蓋率。
你不應該把你在@PrepareForTest()註釋測試的類。檢查你是否已經添加它並將其從註釋中移除。
我能夠通過的測試用例上調用類的一個實例來解決地雷問題。 即
public hotelOccupancy hotel = new hotelOccupancy();
@Test
public void testName() {
// some test here
}
一旦我做到了我所有的報道開始工作,並在問題得到解決。
- 1. PHPUnit代碼覆蓋率報告0/0
- 2. 儀器測試jacoco覆蓋率報告顯示總是覆蓋0%覆蓋
- 3. Cobertura with Ant Script:xml/html覆蓋率報告總是顯示0%覆蓋率
- 4. 艾瑪代碼覆蓋率報告
- 5. pydev代碼覆蓋率報告爲零
- 6. maven emma代碼覆蓋率報告
- 7. PHPUnit代碼覆蓋率0%
- 8. 如何在Hudson中彙總代碼覆蓋率報告?
- 9. EclEmma的代碼覆蓋率源代碼註釋
- 10. 將JUnit覆蓋率報告與EclEMMA插件合併
- 11. PHPUnit代碼覆蓋率報告一些文件,因爲它們沒有代碼(因此報告0/0行100%覆蓋率)
- 12. Jacoco代碼覆蓋率顯示Jenkins覆蓋率爲0%
- 13. 靶心覆蓋率,代碼覆蓋率爲0%
- 14. PHPSpec和覆蓋率報告
- 15. PHPUnit,覆蓋率報告顯示非代碼行沒有涵蓋?
- 16. 的NoClassDefFoundError與EclEmma代碼覆蓋工具
- 17. EclEmma JAVA代碼覆蓋率 - 無法覆蓋RESTful Web服務的服務層
- 18. eclEmma - 類頭的完整代碼覆蓋率?
- 19. 忽略EclEmma中單元測試的代碼覆蓋率
- 20. 是否有獲得Apex代碼的代碼覆蓋率報告的好方法?
- 21. 代碼覆蓋率報告「代碼運行」,但不是由單獨文件單元測試「代碼覆蓋」
- 22. APEX測試類0%代碼覆蓋率
- 23. EclEmma代碼覆蓋率忽略Junit測試
- 24. 嚴格的報告的代碼覆蓋率
- 25. VS 2010代碼覆蓋率報告未顯示覆蓋的行數
- 26. CakePHP v1.3:完整的代碼覆蓋率報告
- 27. Karma中多個瀏覽器的代碼覆蓋率報告
- 28. 使用cobertura插件轉到Jenkins的代碼覆蓋率報告
- 29. jenkins管道作業的Cobertura代碼覆蓋率報告
- 30. JUnit測試的Maven代碼覆蓋率報告
葉氏,使用@Test。從覆蓋按鈕運行。測試運行正常,但覆蓋率總是顯示0%,所有紅色路徑。 – renanlf
我已更新答案,檢查它是否有幫助。 – Steve
不...還是一樣= /。你在Maven項目中使用它嗎?導致這個問題似乎只發生在這裏的maven項目 – renanlf