我们的解决方案最终将是大型企业,因此集成测试的数量将会增加(虽然现在很小)。我们的目标是实现近乎连续的部署(提交和发布之间的 2 天)。
我们在 MyProj.Tests.Unit 中有单元测试,在 MyProj.Tests.Integration 中有集成测试。我们将 TFS 云持续集成用于单元测试,并使用一个特殊的构建来为集成测试运行一个虚拟环境。单元测试和集成测试之间的分离不是这里的问题,问题是分离集成测试有什么好处。
对我们来说,集成测试是那些需要外部资源的测试,例如数据库或测试 Web 服务。我们正在尝试决定是否使用 TestCategory 按测试所需的资源来标记测试,例如:
[TestCategory("NeedsDB")]
或者
[TestCategory("NeedsServiceX")]
我们当前的集成测试环境很快,但由于我们处于项目的早期阶段,因此没有承受很大的负载。一些开发人员提到,通过属性查看方法需要什么很有用,但我更喜欢开发人员使用他们的眼睛和大脑,而不是依赖需要手动更新的属性。
我正在尝试确定以这种方式标记测试是否是样板YAGNI。
- 如果我现在不分区我的集成测试,我将来会遇到问题吗?
- 我们是否以这种方式滥用 TestCategory 属性?它是为了别的东西吗?