如何在MS代码合同中找到“屏蔽”断言

时间:2012-04-06 00:25:03

标签: code-contracts

我在CodeContracts的错误列表中有以下消息级别条目:

CodeContracts:检查了410个断言:404正确(6个蒙面)

我无法弄清楚:

  1. 什么是蒙面断言
  2. 如何找到它提到的6
  3. 我是否应该关注他们
  4. 很抱歉没有发布代码...我不知道如何在一个小样本中重新创建它:)

    非常感谢

2 个答案:

答案 0 :(得分:9)

很简单,在您的项目属性>代码合同>静态检查>把警告放在“嗨”。

现在ccCheck发出更多警告。

再见。

答案 1 :(得分:2)

这些似乎是由于它们包含在“基线”文件中而被掩盖的断言。从文档(强调我的):

  

6.6.8基线

     

将现有的代码库带到一个点,其中只有一些警告只发出一些警告是困难和耗时的,因为它需要添加许多合同。为了更容易在现有代码库上使用合同,并集中新代码或代码更改引入的警告,可以使用Baseline功能。

     

要使用基线功能,请选中标有Baseline的复选框,并提供用于存储基线的文件名。该路径相对于项目输出目录。运行分析并且基线文件不存在时,将创建基线。在此运行期间,所有警告都显示在输出中,并以XML格式存储在基准文件中。

     

运行分析并且基线文件存在时,基线充当过滤器,并且基线中已找到的 警告不会再次显示。 新警告是显示并存储在名为<baseline>.new的文件中,其中<baseline>是基线文件的文件名。由于文件存储为文本XML,因此可以编辑它们并向基线添加其他故障。格式不依赖于方法排序,可以自由引入用于分组的其他XML标记。

我也想知道“蒙面”的消息;我关掉了“基线”选项,它们不再出现了。因此,您的第二个问题的答案似乎是“清除'基线'复选框。”

至于你是否应该关注他们,我会说,是的,你应该。