如何:禁用和启用测试
在运行包含某个测试的一组测试时,可以禁用该测试以使其暂时变得不可用。 可以随时重新启用该测试。 为什么要禁用某个测试呢? 请考虑以下可能出现的情况:
生成的产品中包含一个会导致产品崩溃的 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 特性
打开单元测试以编辑其源代码。 若要执行此操作,请在“测试列表编辑器”中双击该单元测试。
将打开包含该单元测试的源代码文件。
将 IgnoreAttribute 特性添加到单元测试。
该测试将被禁用。 在“属性”窗口中**“已启用测试”**属性将自动设置为 False。 若要了解有关此操作的范围的更多信息,请参见前面的“对单元测试使用 Ignore 特性”一节。
若要重新启用该测试,请删除或注释掉 Ignore 特性。
请参见
任务
如何:从 Microsoft Visual Studio 运行自动测试