Perforce 编写支持代码覆盖率测试的工具

Perforce 编写支持代码覆盖率测试的工具,perforce,code-coverage,Perforce,Code Coverage,我正在尝试编写一个小型工具,以支持我们公司正在运行的一些代码覆盖率测试 这是我对工具的要求- 输入- 已修改的文件(.cpp和.h)列表(作为签入变更列表的一部分) 输出- 源中添加或修改的所有函数(作为签入更改的结果) 你知道我该怎么做吗?基本上,它可以归结为哪些行发生了更改,以及与更改的行相关联的函数是什么 更多信息- 源代码管理:Perforce 平台:Windows这听起来很棘手。我不确定你会如何处理源代码中更改的函数的信息。您不希望将代码覆盖率限制在这些函数上:可能是更改的函数影响了未

我正在尝试编写一个小型工具,以支持我们公司正在运行的一些代码覆盖率测试

这是我对工具的要求-

输入- 已修改的文件(.cpp和.h)列表(作为签入变更列表的一部分)

输出- 源中添加或修改的所有函数(作为签入更改的结果)

你知道我该怎么做吗?基本上,它可以归结为哪些行发生了更改,以及与更改的行相关联的函数是什么

更多信息- 源代码管理:Perforce
平台:Windows这听起来很棘手。我不确定你会如何处理源代码中更改的函数的信息。您不希望将代码覆盖率限制在这些函数上:可能是更改的函数影响了未更改函数的覆盖率


也许最好的办法就是在每次签入时运行所有测试,或者如果有任何变化,每小时运行一次。然后,您可以跳过复杂的工具创建,并获得更好的结果。

由于所有文件都已签入Performance,因此您可以对更改后的文件与以前的版本进行批差异(p4 diff2)。p4 diff2还采用了分支规范,这可能是一种更方便的方法

当发现差异时,您需要编写一个脚本来提取更改行的方法名。算法可能是“在文件中向后搜索,直到找到语法的方法签名”

聪明的做法是,根据文件名或其他脚本生成的类列表来确定类名。此类名列表有助于确定方法签名。如您所知,类名后面跟着::和方法名

我认为这个算法很容易使95%以上的准确率,很难使任意输入的准确率达到100%

此脚本应排除重复项以生成唯一列表

结果列表是您在问题中请求的列表