在我提交更改之前,我想确保所有这些都已经过自动或手动测试,但是有很多遗留代码没有自动化测试,也不会受我的改变影响.
是否有一个工具可以使用代码覆盖率报告交叉引用版本控制工具中的差异,并确保已经运行了所有已更改的内容?
我意识到,通过代码覆盖,这可能会给人一种虚假的安全感,而且就这样,甚至更多,但我认为值得尝试.我使用git和PHP – 我已经使用XCache的代码coverager接口来浏览我运行的内容,它很有用,但是如果某些内容可以在git commit或push time自动运行会很棒.
对于git diffs,有一个名为
diff-cover的工具,可以检查覆盖范围.它需要Cobertura XML覆盖率报告并与git diff的输出进行比较.然后它报告差异中的行的覆盖信息.
给定适当的覆盖xml文件,您可以使用此命令检查更改与主分支相比的覆盖范围:
$diff-cover coverage.xml
与CI服务器集成也非常简单,只要它可以为您提供需要进行比较的提交,例如Jenkins中的$GIT_PREVIoUS_COMMIT.