Fitnesse的代码覆盖率

3
我刚刚继承了一个老旧的Java代码库(大约10-15年)。它没有任何自动化测试覆盖率,或者至少现代世界不知道。我打算首先撰写一些Fitnesse脚本来解决这个问题。
我知道Concordion等工具,但我有我的理由选择Fitnesse。我会将这个话题放在一边,因为这不是这个问题的重点。
我的问题是,我不知道如何快速测量由我编写的Fitnesse测试所覆盖的代码范围。 我知道jacoco(或类似的库)应该能够报告它们,但我无法确定具体方法。
如果你们中有人曾经在Fitnesse测试脚本上工作,并成功地让Jenkins报告脚本实现的覆盖率,请帮帮我。
谢谢。
1个回答

0

我自己没有做过这个,因为我倾向于使用FitNesse来测试已部署的应用程序(我无法测量“实际安装”中的代码覆盖范围)。但是,如果您将FitNesse测试作为Jenkins(或任何其他构建服务器)jUnit运行的一部分运行,则我认为这应该是相当简单的,因为这会测量代码覆盖率。

要使您的FitNesse测试作为jUnit运行的一部分执行:创建一个带有@RunWith(FitNesseRunner.class)注释的Java类,并给它@Suite(“MyPageOrSuite.That.IWantToRun”)注释以指示要运行的测试。这将在与jUnit进程使用的相同的Java进程中执行指定的页面,因此,如果以某种方式对其进行仪器化以确定代码覆盖范围,那么FitNesse测试的覆盖范围将包含在报告中。

样本jUnit测试类, 运行 FitNesse.SuiteAcceptanceTests.SuiteSlimTests.TestScriptTable:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接