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