2011-09-02 320 views
4

我們將單元測試之前未經測試的代碼,在必要時修改代碼。由於任何軟件包中的大多數代碼已知未經測試,因此很難獲得有用的覆蓋指標。差代碼覆蓋率

是否有任何可用於衡量的工具差異代碼覆蓋率,即由單元測試涵蓋的給定變更集中修改的代碼百分比?像詹金斯

+0

用於.NET我使用NCoverCop http://sourceforge.net/projects/ncovercop/其中ncover的XML輸出進行比較。也許它可以適應你的Java輸出或有一個Java等價物。 –

回答

1

持續集成工具可以讓你保持測試覆蓋率的歷史,告訴你,包括覆蓋面的趨勢相比以前的版本的圖形。例如:Cobertura Jenkins Plugin

+2

我們使用的是Cobertura和Jenkins,它對一個點很有幫助。但我們希望能夠看到新代碼/已更改代碼的覆蓋範圍(即80%的代碼代碼,相比於所有代碼的1%)。能夠挖掘單獨的包/類也有一些幫助,但前提是你知道哪些包/類已被修改。 –

0

看看到聲納,真正的好工具來分析整個應用程序的質量和覆蓋面。

2

使用pycobertura。這是一個通過區分兩個覆蓋報告來防止代碼覆蓋迴歸的命令行工具。它會告訴您新代碼是否比以前的版本更好或更差,覆蓋範圍。

$ pycobertura diff ./master/coverage.xml ./myfeature/coverage.xml 

它是語言不可知的,因爲它只依賴於您的測試/覆蓋工具生成的Cobertura報告(XML文件)。

Pycobertura還可以生成適合在很好CI/CD的工具,如詹金斯HTML報告。

enter image description here

https://github.com/SurveyMonkey/pycobertura

0

我最近確實做到了,用JaCoCo和代碼分析ConQAT框架。該方法如下:

  1. 負荷從基線版本的源代碼和頭版本(和潛在的中介者,如果你也做了測試,在兩者之間)
  2. 的方法比較節目歷史方法以確定發生了變化
  3. 註釋覆蓋信息給每個測試版本
  4. 的方法
  5. 搜索,因爲他們上次更改

沒有被覆蓋有人因此blog post包含更詳細的說明,包括可視化和更高級的主題(如重構檢測),以僅識別值得測試的更改。