我刚刚阅读了Michael C. Feathers伟大的书Working Effectively with Legacy Code,这是对遗留代码进行测试的圣经。在本书中,他描述了一些名为编辑触发的测试:
如果在本书发布之前没有出来,我怀疑有人会很快开发一个IDE,允许你指定一组将在每次击键时运行的测试。这将是一种关闭反馈循环的令人难以置信的方式。
必须要发生。这似乎是不可避免的。已经有IDE可以检查每次击键时的语法,并在出现错误时更改代码的颜色。编辑触发的测试是下一步。
当我读到这篇文章时,我没有听说过支持这一点的任何IDE或工具。但是,我刚刚发现了一个名为Infinitest的项目,它支持Java。
我的问题是:
更新
答案 0 :(得分:1)
红宝石有Autotest。它在编辑文件时不断运行单元测试,使用一些简单的约定将源文件映射到测试文件。还有一个插件,我已经看到,交互式地将emacs中的测试代码用红色或绿色着色。我认为在代码编辑器本身中立即视觉反馈传递/失败的想法很棒。
答案 1 :(得分:1)
自最初的问题已经过去几年了,并且有一些可用于.NET的工具(我假设这个空间也适用于其他语言)。
有一个名为mentioned previously in this thread的自动测试的.NET版本(AutoTest.NET),它已被分叉并更新为一个名为ContinuousTests的功能更全面的工具。我大约一年前试过它,它看起来有很大的潜力,但不幸的是,听起来他们决定停止开发。然而,从好的方面来说,它现在是free!
我没有使用NCrunch,但它是一种似乎正在积极开发的商业产品。
script-based tools可能也符合您所询问的费用
答案 2 :(得分:0)
嗯,它本质上是测试驱动的开发,测试在你输入时连续运行?所以我不会说“编辑触发测试”是一种新的开发技术,而只是IDE的一个特性。
关于此功能的速度,我想这实际上取决于您的项目有多复杂,您正在使用什么编译器和语言,以及您正在进行哪些更改。如果要修改整个项目中使用的某个基本库,则编译器必须重新编译程序的大部分内容才能使用代码在其他库中运行测试。