2015-02-09 32 views
2

代碼覆蓋率我剛剛繼承了老的Java代碼庫(約10 - 15歲)。它沒有任何自動測試覆蓋,或至少當代世界知道它。首先,我打算在它周圍編寫一些Fitnesse腳本。對FitNesse的

我知道Concordion等。而我有我的理由選擇FitNesse的。由於這不是這個問題的主題,我會遠離這一點。

我的問題是,我不知道一個快速的方法來測量由FitNesse的測試完成,因爲我寫出來的代碼覆蓋率。我知道,jacoco(或類似的庫)應該能夠報告他們,但我就是無法弄清楚到底如何。

所以,如果有人對你有FitNesse的測試腳本工作,並已成功地對通過腳本實現的覆蓋率詹金斯報告,請大家幫忙。

謝謝。

回答

0

我自己並沒有這樣做,因爲我傾向於使用FitNesse來測試已部署的應用程序(並且我無法測量'真實安裝'中的代碼覆蓋率)。但我相信,如果你運行你的FitNesse測試作爲詹金斯(或任何其他構建服務器)JUnit的運行,是衡量代碼覆蓋的部分,這應該是相當簡單的。

要將您的FitNesse測試作爲jUnit運行的一部分執行:創建一個用@RunWith(FitNesseRunner.class)註釋的Java類併爲其指定@Suite(「MyPageOrSuite.That.IWantToRun」)註釋,以指示哪個測試運行。這將在jUnit進程正在使用的同一個Java進程中執行指定的頁面,因此如果以某種方式檢測代碼覆蓋範圍,FitNesse測試的覆蓋範圍將包含在報告中。

Sample jUnit test class,運行FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTable:

@RunWith(FitNesseRunner.class) 
@FitNesseRunner.Suite("FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTable") 
@FitNesseRunner.FitnesseDir(".") 
@FitNesseRunner.OutputDir("../target/fitnesse-results") 
public class FitNesseRunnerTest { 
}