.net - 使用 TestCategory 分解集成测试有好处吗?

标签 .net testing integration-testing mstest

我们的解决方案最终将成为大型企业,因此集成测试的数量将会增加(尽管现在很小)。我们的目标是实现近乎连续的部署(提交和发布之间需要 2 天)。

我们在 MyProj.Tests.Unit 中有单元测试,在 MyProj.Tests.Integration 中有集成测试。我们使用 TFS 云持续集成进行单元测试,并使用一个特殊的构建来运行集成测试的虚拟环境。单元测试和集成测试之间的拆分不是这里的问题,问题是拆分集成测试有什么好处。

对我们来说,集成测试是那些需要外部资源(例如数据库或测试网络服务)的测试。我们正在尝试决定是否使用 TestCategory 来标记测试所需的资源,例如:

[TestCategory("NeedsDB")]

[TestCategory("NeedsServiceX")]

我们当前的集成测试环境速度很快,但由于我们处于项目的早期阶段,因此负载并不大。一些开发人员提到,通过其属性查看方法需要什么是有用的,但我更喜欢开发人员使用他们的眼睛和大脑,而不是依赖需要手动更新的属性。

我正在尝试确定以这种方式标记测试是否是样板 YAGNI或不。

  • 如果我现在不对集成测试进行分区,我将来会遇到问题吗?
  • 我们是否以这种方式滥用了 TestCategory 属性?它是用于其他用途吗?

最佳答案

MSTest 的一个问题是您必须使用类别来标记每个测试,而不是能够使用 NUnit 来标记整个装置。我怀疑您能否在大中型项目中使类别保持最新。与现在尝试解决一个不存在的问题相比,当它在未来真正出现时解决问题不是更好吗?当您最终确实遇到问题时,您将能够更好地解决问题。

关于.net - 使用 TestCategory 分解集成测试有好处吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18232656/

相关文章:

.net - 是否可以动态创建工作流程(在 Workflow-foundation -4 中)?

c# - 意外的十进制值行为

ruby-on-rails - 组织 Rails 功能和单元测试用例的最佳方式是什么?

laravel - 如何为使用 Laravel 5 中存储文件系统的端点编写集成测试?

c# - 什么类型的编程结构可以用来枚举类?

.net - OpenId Connect - 可以使用客户端证书进行身份验证吗?

javascript - 用于多台打印机的 Testcafe .presskey

unit-testing - 如何测试 Clojure 中抛出的异常?

java - 每层集成测试是一个好习惯吗?

java - 来自 pom.xml 的 Maven 解析器、Shrinkwrap