COM API的代码覆盖率

时间:2017-06-19 20:06:19

标签: c# com code-coverage

我正在尝试在VS 2017 Enterprise中获取一些SpecFlow测试的代码覆盖率。测试的目的是连接到COM服务并使用所有公开的API。

当我运行"分析代码覆盖率"时,结果仅显示SpecFlow语句与我的测试代码相关的行和块。我想要的是至少在测试中执行的API调用的百分比是多少。

有没有办法获得这种详细程度? COM服务是用C ++编写的,而测试是用C#编写的。不确定这是否真的有所作为。

1 个答案:

答案 0 :(得分:0)

如果从.NET运行时调用COM,无论您是否意识到,都使用Runtime-Callable Wrapper (RCW)

create an RCW有几种方法。一种方法是通过在visual studio中添加引用来隐式创建它。另一种方法是use Tlbimp.exe创建一个包含包装器的.NET程序集。我建议你使用后一种方法,并将代码覆盖率统计集中在包装器代码上。如果在包装器上实现了高代码覆盖率,则意味着您调用了大部分底层COM对象的方法。