测试分类

Tests categorization

我想知道 "best practice" 关于使用属性(如 NUnit 的类别属性)对测试进行分类有什么好处?

您是否按应用程序的功能范围、种类(单元测试、端到端测试、冒烟测试、集成测试等)、技术类别(long 运行、web请求等)或每个的混合?

总而言之,我不想在几个月内对数千个测试进行重新分类,那么最好的策略是什么?

提前感谢您的回答!

反问:为什么现在要对数千个测试进行分类?你希望完成什么。如果您不知道,则根本不需要这样做。 :-)

我的回答是,Categories 确实是供开发人员使用的,因为他们可以在需要时轻松地在代码中更改它们。例如,有时标记所有慢 运行ning 测试很方便,这样它们就可以从 运行 中排除。您可以改为标记所有快速 运行ning 测试,但希望有更多这样的测试。同样,如果您需要在数据库不可用时进行 运行 测试,请对那些需要它的测试使用类别,除非它们已经按命名空间分组。

使用命名空间分组来组织更持久的测试。类别的力量在于它们跨越了您的名称空间和夹具组织。当您需要这种横切时,请谨慎使用它们,但不要建立严格的类别系统。

在不同的项目中进行集成测试。 "WebRequest" 测试是集成测试。

您可以轻松地对测试进行分组的类别想法 select 和 运行。
或者从 运行ning.
中排除 基于将长 运行ning 测试放在同一类别中可能会有用。

大多数 IDE(至少 Visual Studio)包含按 Class 或项目对测试进行分组的可能性。所以不需要为此使用类别。

NUnit 控制台命令行支持 include/exclude 按类别测试,因此这在持续交付中很有用。