【问题标题】:Is edit-triggered testing the next step?下一步是由编辑触发的测试吗?
【发布时间】:2009-06-19 08:01:08
【问题描述】:

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

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

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

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

我的问题是:

  1. 是否有任何其他工具/框架支持此功能(希望也适用于 Visual Studio)?
  2. 您对此类测试有何经验(高效、降低 IDE 速度等)?
  3. 这是 TDD 的下一步吗?

更新:

【问题讨论】:

  • 有趣的概念!不过,我认为这还需要一段时间才能可靠且高效。

标签: unit-testing testing ide tdd infinitest


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    script-based tools 也可能符合您的要求

    另请参阅此问题: How do I do continuous testing in .NET?

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 同意这不是一种新的开发技术,它更多的是为了缩短测试的反馈。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 2023-01-14
      • 1970-01-01
      相关资源
      最近更新 更多