您的单元测试(每秒测试次数)的目标是什么样的执行率?单个单元测试需要多长时间?
我有兴趣知道人们是否有任何特定的阈值来确定他们的测试是否太慢,或者只是当长时间运行的测试套件的摩擦力变得更好时?
最后,当您确定测试需要更快地运行时,您使用什么技术来加速测试?
注意:集成测试显然是另一回事.我们严格地谈论需要尽可能频繁运行的单元测试.
回复综述:感谢迄今为止的出色回应.大多数建议似乎都不用担心速度 - 专注于质量,如果速度太慢就选择性地运行它们.具有特定数字的答案包括每次测试的目标是<10ms,最多0.5秒和1秒,或者只需将整套常用测试保持在10秒以内.
当他们都很有帮助时,不确定将一个标记为"已接受的答案"是否正确:)
所有单元测试应在不到一秒的时间内运行(即所有单元测试合并应在1秒内完成).现在我确定这有实际的限制,但我有一个项目有1000个测试,可以在笔记本电脑上快速运行.你真的想要这个速度,所以你的开发人员不要害怕重构模型的一些核心部分(即,当我运行这些测试时,Lemme去喝咖啡...... 10分钟后他回来了).
此要求还会强制您正确设计应用程序.这意味着您的域模型是纯粹的,并且包含对任何类型的持久性(文件I/O,数据库等)的零引用.单元测试都是关于测试这些业务关系的.
现在,这并不意味着您忽略了对数据库或持久性的测试.但是这些问题现在被隔离在存储库后面,可以使用位于单独项目中的集成测试单独测试.在编写域代码时不断运行单元测试,然后在签入时运行一次集成测试.