Java 找出哪个测试覆盖了哪一行jacoco

Java 找出哪个测试覆盖了哪一行jacoco,java,testing,jacoco,Java,Testing,Jacoco,我正在一个庞大的代码库上运行集成测试。在覆盖率报告中,我想知道哪个测试覆盖了代码中的某一行。是否有必要与jacoco合作?jacoco不收集这些信息,因此无法报告 可以想象,您可以使用JaCoCo独立运行每个测试,并每次生成一个覆盖率报告,这样每个测试都会显示它所测试的代码行。(然后,我想您必须用一个定制的聚合报告来包装它,在这里您可以从一个测试导航到下一个测试) 我知道,对于一个庞大的代码库和大量的测试,这可能是不实际的。 另一个限制是,您无法理解“执行该行代码的所有测试是什么?” 正如@Ro

我正在一个庞大的代码库上运行集成测试。在覆盖率报告中,我想知道哪个测试覆盖了代码中的某一行。是否有必要与jacoco合作?

jacoco不收集这些信息,因此无法报告

可以想象,您可以使用JaCoCo独立运行每个测试,并每次生成一个覆盖率报告,这样每个测试都会显示它所测试的代码行。(然后,我想您必须用一个定制的聚合报告来包装它,在这里您可以从一个测试导航到下一个测试)

我知道,对于一个庞大的代码库和大量的测试,这可能是不实际的。 另一个限制是,您无法理解“执行该行代码的所有测试是什么?”


正如@Rogério所说,其他工具可能能够提供该功能。

以防有人仍在寻找这个问题的解决方案。 在我的例子中,我使用Jacoco编写了一个小程序,以生成包含每个测试用例的覆盖线信息的覆盖报告。基于这个项目结构,我只需编写一个脚本,自动一个接一个地运行测试用例,并收集每个覆盖率报告,以获取每个测试覆盖哪些行的信息。 注意,这个解决方案不是最好的解决方案(当测试用例的数量很大时,它很耗时),但它只是帮助我使用Jacoco获得测试用例的覆盖行信息。
有关演示,请参阅。

声纳确实具有每次测试的覆盖范围。请参阅此处以获取一些提示。这是一个信息丰富的链接,但是有没有一种方法可以在没有声纳的情况下实现呢?声纳所做的是让您从每个单独的测试导航到测试所使用的一组源文件/行。它不提供相反的方向,即从测试代码中的一行到覆盖该行的测试。JaCoCo本身也不支持这两种方法。提供第二个特性的覆盖率工具是JMockit覆盖率。Jacoco可以做到这一点,但不用于集成测试。仅用于单元测试@mattalxndr你在哪里看到的?我的jacoco报告都没有显示您在图像中发送的内容