2009-02-01 72 views
2

我想写一个小的工具来支持代码覆盖范围我们在我公司运行的测试。编写一个工具来支持代码覆盖测试

这里是我的工具要求 -

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

输出 - 在源中添加或修改的所有功能(作为检入更改的结果)。

任何想法我可以怎么做呢?基本上,它归结到什么线改变的,什么是与改线相关的功能...

更多信息 - 源控制:Perforce的 平台:视窗

回答

2

这听起来很棘手。我不确定你会如何处理源代码中已更改函数的信息。您不希望将代码覆盖范围限制为这些函数:可能是因为更改后的函数会影响未更改函数的覆盖范围。

也许最好的办法是简单地在每次登记时运行所有测试,或者如果有任何更改,则每小时运行一次。那么你可以跳过复杂的工具创建,并且无论如何都有更好的结果。

0

由于所有文件都被检入到Perforce中,因此您可以使用以前的版本对已更改的文件执行批处理diff(p4 diff2)。 p4 diff2也采用分支规格,这可能是更方便的方法。

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

要聪明,根据文件名或其他脚本生成的类的列表来确定类名。这个类名列表可以有助于确定方法签名。如你所知,类名跟在::和方法名之后。

我认为这个算法很容易使95 +%准确,并且很难使任意输入100%准确。

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

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