3

首先是问题: 在 PHPUnit 3.5 中,有没有一种方法可以为单个测试生成覆盖率报告,而不会覆盖整个测试套件的报告。即只更新受影响文件的覆盖率报告?我仍然希望输出到同一个文件夹。

对于那些想要一些背景知识的人:

使用 PHPUnit 3.5,我有一个项目需要追溯覆盖单元测试。现在为了知道哪些类仍然需要测试,我运行了整个测试套件并生成了一个 html 覆盖率报告。因为运行完整的套件需要一些时间,所以我想避免每次我想检查哪些测试还需要实现时都运行它。但同时我也想要我目前正在处理的单元测试的覆盖率报告,这样我就可以确保我正在执行一个类中的每一行代码(这当然是非常快的来回,因此运行整个套件只是为了生成此报告是没有意义的)。我可以为单个测试生成报告,也可以为整个套件生成报告。但我正在寻找的是混合动力车,

我已经设置了一个 ruby​​ 脚本,它将简单地为我正在处理的当前文件运行测试并生成关于该文件的覆盖率报告。但是像这样工作,它总是重置所有其他文件的覆盖率报告,即使测试没有在这些类中执行任何东西。

有任何想法吗?

4

1 回答 1

0

这在本机是不可能的,但是如果您能弄清楚如何从 XML 覆盖数据文件重新生成 HTML,您可以将脚本修改为

  1. 将完整运行的覆盖 XML 复制到暂存区域。
  2. 运行单个测试时,将新的 XML 文件复制到该区域。这不一定会合并覆盖同一类的两个测试的覆盖率,但我从你的描述中猜测你正在覆盖每个测试的一个类,反之亦然。
  3. 从 XML 重建 HTML。您也许可以通过查看源代码来弄清楚如何做到这一点,但我怀疑这也可能是本机的。
于 2012-09-28T14:32:40.587 回答