如何:禁用和启用测试

更新:2007 年 11 月

在运行包含某个测试的一组测试时,可以禁用该测试以使其暂时变得不可用。可以随时重新启用该测试。为什么要禁用某个测试呢? 请考虑以下可能出现的情况:

  • 生成的产品中包含一个会导致产品崩溃的 bug,而这个 bug 位于您的某个测试所要执行的代码中。此测试是按顺序运行的多个测试中的一个。由于此测试会间接引发产品崩溃,因此您的测试运行将不能按顺序通过此测试。解决办法是记录下会导致产品崩溃的代码中的 bug,并在修复此 bug 之前禁用此测试。然后,按顺序继续进行下一个测试。

  • 测试运行中的某个特定测试发现了一个已记录在案的 bug。如果不希望在每次运行所选择测试时都重复发现相同的已知 bug,请禁用该测试。

    说明:

    在修复相关 bug 后,应记得重新启用相应的测试。

如果您运行的测试列表中包含已禁用的测试,则只会运行测试列表中处于启用状态的测试(如果有)。如果测试列表中没有包含任何处于启用状态的测试,则测试列表自身将被禁用。

对单元测试使用 Ignore 属性

使用 Ignore 属性描述了如何使用 IgnoreAttribute 属性标记单元测试方法。使用此属性可更改测试的可用性,但是它不同于禁用和启用测试的另外一种方式,具体差异体现在以下方面:

  • 如禁用测试和启用测试中所述,您可以使用“测试列表编辑器”禁用和启用任何类型的测试。但是 Ignore 属性只能应用于某个测试方法。这意味着只能将 Ignore 属性应用于单元测试。

  • 表示启用或禁用测试的标志存储在测试的元数据文件中。

  • 单元测试的 Ignore 属性与测试的其他属性和源代码一起存放于单元测试的源文件中。这意味着,如果在“测试列表编辑器”中禁用某个单元测试,然后使用 MSTest.exe 命令行实用工具运行该测试,测试仍然可以运行。但是如果用 Ignore 属性标记某个单元测试,编译程序集,然后使用 MSTest.exe 运行该测试,测试不会运行。不能运行的原因是:Ignore 属性已经成为了测试的一部分。

这两种方法分别用于不同的方案之中:

  • Ignore 属性。您是一位开发人员,负责撰写成品代码和测试代码。您正处于对代码进行大量修改的过程中,并且您知道某个单元测试暂时会出现故障。因此,在签入该测试的时候,您会使用 Ignore 属性标记它,指出不希望运行该测试。

  • 禁用和启用。您在一个产品实验室中工作,并且无法访问所运行的测试的源代码。在这种情况下,只能使用“测试列表编辑器”的启用和禁用功能。

禁用测试

禁用测试

  • 若要禁用一个测试,请在“测试列表编辑器”中右击某个已启用的测试,再单击“禁用”。若要禁用多个测试,可在按下 Ctrl 或 Shift 的同时单击各个测试所在的行,以突出显示多个要禁用的已启用测试。然后,右击所选定的行并单击“禁用”。

    - 或 -

    在“测试列表编辑器”或“测试视图”窗口中选择该测试,按 F4 以显示“属性”窗口。然后,将“已启用测试”属性的值设为 False。

启用测试

启用测试

  • 若要启用一个测试,请在“测试列表编辑器”中右击某个已禁用的测试,再单击“启用”。若要启用多个测试,可在按下 Ctrl 或 Shift 的同时单击各个测试所在的行,以突出显示多个要启用的已禁用测试。然后,右击所选定的行并单击“启用”。

    - 或 -

    在“测试列表编辑器”或“测试视图”窗口中选择该测试,按 F4 以显示“属性”窗口。然后,将“已启用测试”属性的值设为 True。

使用 Ignore 属性

使用 Ignore 属性

  1. 打开单元测试以编辑其源代码。若要执行此操作,请在“测试列表编辑器”中双击该单元测试。

    将打开包含该单元测试的源代码文件。

  2. IgnoreAttribute 属性添加到单元测试。

    该测试将被禁用。在“属性”窗口中“已启用测试”属性将自动设置为 False。若要了解有关此操作的范围的更多信息,请参见前面的“对单元测试使用 Ignore 属性”一节。

    若要重新启用该测试,请删除或注释掉 Ignore 属性。

请参见

任务

如何:运行选定的测试

参考

IgnoreAttribute