我刚刚继承了一个旧的java代码库(大约10 - 15年)。它没有任何自动测试覆盖率,或者至少当代世界知道它。我打算在它周围编写一些Fitnesse脚本。
我知道Concordion等。我有理由选择Fitnesse。我将远离那,因为这不是这个问题的主题。
我的问题是,在编写Fitnesse测试时,我不知道快速测量代码覆盖率的方法。我知道jacoco(或类似的库)应该能够报告它们,但我无法确切地知道如何。
所以,如果你们中的任何人都使用过Fitnesse测试脚本并且设法让Jenkins报告脚本所实现的覆盖范围,请帮助。
感谢。
答案 0 :(得分:0)
我自己没有这样做,因为我倾向于使用FitNesse来测试已部署的应用程序(而且我无法在“真实安装”中测量代码覆盖率)。但是我相信如果你将FitNesse测试作为Jenkins(或任何其他构建服务器的)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 {
}