如何:禁用和启用测试

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

  • 生成的产品中包含一个会导致产品崩溃的 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 特性。

请参见

任务

如何:从 Microsoft Visual Studio 运行自动测试

参考

IgnoreAttribute