本主题解释了如何防止 SOAtest 报告特定的静态分析违规(例如,当你通常遵循一个规则,但在少数例外情况下决定忽略该规则)。抑制方案可以在 GUI 中输入,也可以在源代码中直接定义。
本章包含:
关于抑制
使用抑制来防止 SOAtest 报告特定静态分析任务的附加情况(可能报告单个规则的多个任务)。被抑制的消息将被发送到一个特殊的抑制视图,而不是质量任务视图;这允许你根据需要监视那些违规行为,同时将主要结果区域集中在其他错误上。
当你通常希望遵循某个规则,但在少数例外情况下决定忽略该规则时,你将对这些情况使用抑制。通过使用抑制,你可以继续检查代码是否遵循该规则,而不会收到关于故意违反规则的重复消息。如果不想接收任何违反特定规则的错误消息,我们建议你修改你的测试配置,这样它们就不会再检查该规则。
注意,抑制设置是独立于测试配置的。为了避免混淆,请记住:
- 测试配置定义了在静态分析期间检查的规则集。
- 抑制定义了哪些静态分析结果应该在质量任务视图和报告中可见。
这意味着在分析期间将检查测试配置中选择的规则,但是不显示与抑制条件匹配的结果。
抑制是基于消息的,而不是基于规则的。
抑制阻止特定的静态分析任务的报告(例如,修复发生在 Y 行的违反 X 规则的行为);它们并不阻止报告所有违反规则的行为。
定义抑制
若要抑制质量任务视图中显示的静态分析任务:
- 请右键单击表示要抑制的任务的质量任务视图项,然后从快捷菜单中选择 Suppress Task 。
- 若要抑制组中的所有任务(规则类别、特定规则、文件等),请右键单击表示该组的节点,然后选择 Suppress All Tasks。
- 在打开的对话框中输入抑制的原因。
然后任务将被“抑制”并从质量任务视图中删除。将向抑制视图中添加一个抑制条目。如果在此项目的后续测试中发现相同的静态分析违规,则会在抑制视图中报告,而不在质量任务视图中报告。
查看抑制
若要查看在随后的测试运行中报告的被抑制的消息:
- 请打开抑制视图。如果该视图不可用,请选择 Parasoft> Show View> Suppressions 来打开它。
抑制消息视图将显示以下信息:
- 被抑制的静态分析冲突。
- 任务被取消的原因。
- 应用禁止的资源(文件)。
- 包含资源的文件夹。
- 抑制任务的人的名字。
- 首次实施抑制的日期。
若要按列标题之一对抑制视图内容进行排序,请单击该列标题。
你可以编辑一个抑制的消息或原因
在抑制视图中右键单击该选项,从打开的快捷菜单中选择 Edit Message 或 Edit Reason ,然后在打开的对话框中修改消息或原因。
使用抑制过滤器来限制显示的抑制
你可以使用可用的抑制筛选器来限制在抑制视图中显示哪些抑制。
若要过滤在抑制视图中显示的抑制:
- 请单击抑制视图工具栏的 Filters 按钮。将打开一个过滤器对话框。
- 选择 Enabled 复选框,启动过滤器。
- 使用对话框的控件指定筛选条件。可用选项包括:
- Limit visible items to: 显示的抑制数不超过指定的数目。
- On any resources: 显示所有项目的所有抑制。
- On any resource in same project: 显示当前选择的项目的所有抑制。
- On selected resource only: 仅显示为当前选择的资源输入的抑制。
- On selected resource only and its children: 仅显示为当前选择的资源和该资源的子资源输入的抑制。
清除抑制
选择要移除的抑制项,然后单击视图右上角的红色 X Remove Suppression 图标。
如果在该项目的后续测试中发现相同的静态分析违规,则该任务将在质量任务视图中报告。