我想写一个小的工具来支持代码覆盖范围我们在我公司运行的测试。编写一个工具来支持代码覆盖测试
这里是我的工具要求 -
输入 - 文件列表(的.cpp和.h),它已被修改(为签入的变更表的一部分)
输出 - 在源中添加或修改的所有功能(作为检入更改的结果)。
任何想法我可以怎么做呢?基本上,它归结到什么线改变的,什么是与改线相关的功能...
更多信息 - 源控制:Perforce的 平台:视窗
我想写一个小的工具来支持代码覆盖范围我们在我公司运行的测试。编写一个工具来支持代码覆盖测试
这里是我的工具要求 -
输入 - 文件列表(的.cpp和.h),它已被修改(为签入的变更表的一部分)
输出 - 在源中添加或修改的所有功能(作为检入更改的结果)。
任何想法我可以怎么做呢?基本上,它归结到什么线改变的,什么是与改线相关的功能...
更多信息 - 源控制:Perforce的 平台:视窗
这听起来很棘手。我不确定你会如何处理源代码中已更改函数的信息。您不希望将代码覆盖范围限制为这些函数:可能是因为更改后的函数会影响未更改函数的覆盖范围。
也许最好的办法是简单地在每次登记时运行所有测试,或者如果有任何更改,则每小时运行一次。那么你可以跳过复杂的工具创建,并且无论如何都有更好的结果。
由于所有文件都被检入到Perforce中,因此您可以使用以前的版本对已更改的文件执行批处理diff(p4 diff2)。 p4 diff2也采用分支规格,这可能是更方便的方法。
找到差异时,您需要编写一个脚本来提取已更改行的方法名称。该算法可能是“在文件中向后搜索,直到找到语法的方法签名”。
要聪明,根据文件名或其他脚本生成的类的列表来确定类名。这个类名列表可以有助于确定方法签名。如你所知,类名跟在::和方法名之后。
我认为这个算法很容易使95 +%准确,并且很难使任意输入100%准确。
此脚本应排除重复以生成唯一列表。
结果列表是您在问题中请求的列表。