gpt4 book ai didi

unit-testing - 为单个文件生成新的代码覆盖率,而不清除 PHPUnit 中的所有其他覆盖率报告

转载 作者:行者123 更新时间:2023-12-04 05:28:11 26 4
gpt4 key购买 nike

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

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

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

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

有什么想法吗?

最佳答案

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

  1. 将完整运行的覆盖率 XML 复制到临时区域。
  2. 运行单个测试时,将新的 XML 文件复制到该区域。这不一定会合并覆盖同一类的两个测试的覆盖范围,但我从你的描述中猜测你正在覆盖每个测试的一个类,反之亦然。
  3. 从 XML 重建 HTML。您也许可以通过查看源代码来弄清楚如何执行此操作,但我怀疑它本身是否可行。

关于unit-testing - 为单个文件生成新的代码覆盖率,而不清除 PHPUnit 中的所有其他覆盖率报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12641870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com