检查NotImplementedExceptions的FxCop规则
-
03-07-2019 - |
题
我希望每晚构建检查我的.NET代码中有多少NotImplementedExeptions,所以我们希望在发布之前将它们全部删除。我首先想到的是,FxCop可能是一个很好的工具。有没有人有这个自定义FxCop规则?我将如何自己创建一个?
解决方案
我实际上实现了一个并在这个答案中显示了代码一>
其他提示
如果超过10个方法创建NotImplementedException,则此类单元测试将失败。如果失败,它将报告所有创建此异常的方法。
var throwingMethods = codebase.Methods
.Where(m => m
.GetInstructions()
.Exists(i => i.Creates<NotImplementedException>()))
.ToArray();
if (throwingMethods.Length > 10)
CollectionAssert.IsEmpty(throwingMethods);
代码库的创建方式如下:
var codebase = new Codebase("Assembly1.dll","Assembly2.dll");
Snippet使用来自 Lokad Shared Libraries 的Lokad.Quality.dll。
网上有大量关于如何制作自己的FxCop规则的资源,但由于'NotImplementedException'是一个如此独特的名称,你可能只是计算它在文件文本中的出现。为所有.cs文件创建一个ItemGroup,然后使用适当的DOS命令(例如“find / c”)并通过EXEC任务获取计数作为输出。
不隶属于 StackOverflow