我在庞大的代码库上运行集成测试。在覆盖率报告中,我想知道哪个测试覆盖了代码中的某一行。无论如何使用jacoco做到了吗?
答案 0 :(得分:1)
JaCoCo不会收集该信息,因此无法报告。
可以想象,您可以使用JaCoCo独立运行每个测试并每次生成一个覆盖率报告,这样每个测试都会显示它所测试的确切代码行。 (然后你必须用我想的自定义聚合报告来包装它,你可以从一个测试导航到下一个测试。)
我认为这对于庞大的代码库和大量测试可能并不实用。 另一个限制是你没有达到“所有运行该行代码的测试是什么?”。
正如@Rogério所说,其他工具可能能够提供这种功能。
答案 1 :(得分:1)
以防万一有人仍在寻找此问题的解决方案。 就我而言,我使用Jacoco编写了一个小型demo,以生成一个覆盖率报告,其中包含每个测试用例的覆盖行信息。然后,基于此项目结构,我简单地编写了一个脚本来自动逐个运行测试用例,并收集每个覆盖率报告以获取有关每个测试覆盖哪些行的信息。 请注意,该解决方案不是最佳解决方案(当测试用例数量很大时,这很耗时),但是它只能帮助我使用Jacoco获得测试用例的涵盖行信息。 请参阅https://github.com/chenliushan/JacocoExample进行演示。