繁体   English   中英

PostSharp和Visual Studio代码覆盖率

[英]PostSharp and Visual Studio Code Coverage

我最近开始在我的一些项目中使用PostSharp,并注意到一个不幸的副作用 - 它使用的所有项目中的代码覆盖率显着下降。

我猜测这种情况发生的原因是分析仪看到了PostSharp代码并且很多代码没有经过测试(例如用于通用异常处理和日志记录的样板代码)。 我显然可以为使用这些方面的每种方法编写单元测试,但如果我说实话,那感觉就像浪费时间。

有没有人有这种经历的经验?

你使用什么代码覆盖工具? 在PartCover中,您可以忽略某些类或命名空间,如MyProgram.PostSharp。*,以接收正确的数字。

我熟悉AOP,但不熟悉PostSharp。

但...

如果排除属性不能解决问题,我看到的唯一选择是构建一个没有注入代码的程序集版本。 如何获得这取决于PostSharp的工作原理。 如果在常规编译之后完成,您可以创建一个额外的构建目标,在没有PostSharp的情况下构建程序集。 然后你可以在你的单元测试中使用它。 您应该注意,您的单元测试无法再测试PostSharp添加的功能。

我找到了解决这个问题的方法:

如果我没有在调试模式下添加aspect属性,则会正确计算代码覆盖率(如果我在调试模式下运行测试):

#If Not DEBUG Then
<Assembly: De.Trumpkin.LogWrapper.TraceLogAspect()>
#End If

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM