我有一个安装程序,其中Visual Studio 2010运行测试覆盖率分析,并且它的输出在集成构建过程中被NDepend吸收。

一些程序集包含需要被NDepend忽略的生成代码。
有没有办法做到这一点?最好是整个命名空间。

最佳答案

Code Query and Rule over LINQ (CQLinq)确实提供了一种工具忽略生成的代码

有一个方便的预定义域,名为 JustMyCode ,类型为ICodeBaseView

JustMyCode 表示CQLinq的一种功能,用于从CQLinq查询结果中消除生成的代码元素。例如,以下查询将仅匹配未由工具(如UI设计器)生成的大型方法:

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m

生成的代码元素集由前缀为CQLinq关键字 notmycode 的CQLinq查询定义。例如,以下查询与名称以“.designer.cs” 结尾的源文件中定义的方法匹配:
notmycode from m in Methods where
  m.SourceFileDeclAvailable &&
  m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m

CQLinq查询运行程序在依赖 JustMyCode 的查询之前执行所有 notmycode 查询,因此,域 JustMyCode 被一次定义。显然,如果 notmycode 查询依赖 JustMyCode 域,则CQLinq编译器会发出错误。

共有4个默认的 notmycode 查询,可轻松适应您的需求。请注意,对于 namespace ,没有默认的 notmycode 查询,但是您可以创建自己的 namespace :
  • Discard generated Assemblies from JustMyCode
  • Discard generated Types from JustMyCode
  • Discard generated and designer Methods from JustMyCode
  • Discard generated Fields from JustMyCode
  • 关于visual-studio-2010 - 是否可以从NDepend分析中排除整个 namespace ?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7390066/

    10-11 06:50