8

我刚刚阅读了 Michael C. Feathers 的好书Working Effectively with Legacy Code,这是一本将测试引入遗留代码的圣经。在这本书中,他描述了一种叫做编辑触发测试的东西:

如果这本书出版时还没有出版,我怀疑有人很快就会开发出一个 IDE,它允许您指定一组在每次击键时运行的测试。这将是关闭反馈循环的一种不可思议的方式。

它必须发生。这似乎是不可避免的。已经有 IDE 检查每次击键的语法并在出现错误时更改代码的颜色。下一步是编辑触发的测试。

当我读到这篇文章时,我还没有听说过任何支持这一点的 IDE 或工具。但是,我刚刚找到了一个名为Infinitest的项目,它支持 Java 的这一功能。

我的问题是:

  1. 是否有任何其他工具/框架支持这一点(希望也适用于 Visual Studio)?
  2. 您对这种测试有什么经验(高效、减慢 IDE 等)?
  3. 这是TDD的下一步吗?

更新:

4

3 回答 3

1

自最初的问题以来已经有几年了,并且有一些可用于 .NET 的工具(我认为这个空间也适用于其他语言)。

有一个名为AutoTest.NET的 .NET 版本的 Autotest(本线程前面提到过) ,它已被分叉并更新为一个功能更全面的工具,称为ContinuousTests。大约一年前我尝试过它,当时它看起来有很大的潜力,但不幸的是,听起来他们已经决定停止开发。然而,从好的方面来说,它现在是免费的!

我没有使用过 NCrunch,但它是一个似乎正在积极开发的商业产品。

有一些基于脚本的工具也可能符合您的要求

另请参阅此问题: 如何在 .NET 中进行持续测试?

于 2013-01-23T21:02:36.533 回答
1

红宝石有自动测试。它在您编辑文件时不断运行单元测试,使用一些简单的约定将源文件映射到测试文件。还有一个插件,我已经看到它在 emacs 中以交互方式将测试代码着色为红色或绿色。我认为这种在代码编辑器本身中通过/失败的即时视觉反馈的想法很棒。

于 2009-06-19T08:45:27.497 回答
0

嗯,它本质上是测试驱动的开发,测试在你输入的时候连续运行?所以我不会说“编辑触发测试”是一种新的开发技术,而仅仅是你的 IDE 的一个特性。

关于这个功能的速度,我想这真的取决于你的项目有多复杂,你使用的是什么编译器和语言,以及你做了什么改变。如果您正在修改整个项目中使用的某些基础库,您的编译器将不得不重新编译大部分程序,以便能够使用您的代码在其他库中运行测试。

于 2009-06-19T08:21:59.900 回答