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


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

CodeContracts:检查410断言:404正确(6掩盖)

我弄不清楚:

  1. 掩盖的断言是什么
  2. 如何找到它提到的6
  3. 我是否应该关注他们

很抱歉没有发布代码...我不知道如何在一个小样本中重新创建:)

非常感谢


10681
2018-04-06 00:25


起源



答案:


这很简单,在您的项目属性>代码合同>静态检查>将警告置于“hi”。

现在ccCheck发出更多警告。

再见。


9
2018-01-25 10:31



这对我有用,而不是标记为正确的答案。 - Greg0
是的,这个也适合我。谢谢。 - Ivan Peric


答案:


这很简单,在您的项目属性>代码合同>静态检查>将警告置于“hi”。

现在ccCheck发出更多警告。

再见。


9
2018-01-25 10:31



这对我有用,而不是标记为正确的答案。 - Greg0
是的,这个也适合我。谢谢。 - Ivan Peric


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

6.6.8基线

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

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

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

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

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


2
2018-05-24 21:47



这个答案是不正确的。下面的答案是正确的。要验证这一点,您可以关闭基线,仍然可以看到“屏蔽”消息。但是将警告级别设置为“高”,您将看到它们。 - Greg0