我们的解决方案最终将成为大型企业,因此集成测试的数量将会增加(尽管现在很小)。我们的目标是近乎连续的部署(提交和发布之间的2天)。
我们在MyProj.Tests.Unit中进行单元测试,在MyProj.Tests.Integration中进行集成测试。我们使用TFS云持续集成进行单元测试,并使用特殊构建为集成测试运行虚拟环境。单元测试和集成测试之间的分离不是问题,问题在于分离集成测试的好处。
对于我们来说,集成测试是那些需要外部资源的测试,例如DB或测试Web服务。我们正在尝试决定是否使用TestCategory根据所需资源标记测试,例如:
[TestCategory("NeedsDB")]
或
[TestCategory("NeedsServiceX")]
我们当前的集成测试环境很快,但由于我们在项目的早期阶段没有任何大的负载。一些开发人员已经提到,通过其属性来查看方法需要什么是有用的,但我更喜欢开发人员使用他们的眼睛和大脑,而不是依赖于需要手动更新的属性。
我正在尝试以这种方式标记测试是否为样板YAGNI。
答案 0 :(得分:2)
MSTest的一个问题是您必须使用类别标记每个测试,而不是使用NUnit标记整个夹具。我怀疑你能否在中型到大型项目中保持最新的类别。如果问题在将来实际发生时,你是不是更好地解决问题,而不是现在尝试修复一个不存在的问题。当你最终遇到问题的时候,你会有更好的解决方法来修复它。
答案 1 :(得分:0)
假设该工具允许您按类别选择和运行测试,随着测试套件的大小和执行时间的增长,它可以派上用场。例如,您可以拥有与当前版本相关的测试类别,第二个称为基本核心,另一个称为回归,然后在构建管道中的不同点和频率上运行它们。