【问题标题】:How do you handle TDD in the continuous integration?在持续集成中如何处理 TDD?
【发布时间】:2010-09-14 05:36:01
【问题描述】:

假设您正在实现包含各种新功能并增加代码库复杂性的用户故事。现有代码已经很好地覆盖了,您刚刚决定了接口。您开始实现从测试开始的功能。

现在您有基于需求的相当复杂的测试用例,但是当您能够提交 SCM 完全正常工作的代码并且许多测试都失败(应该如此)时,实现还远远不够。

假设在持续集成中,如果可能,所有构建都应该是绿色的,因此您不应该提交,因为您会破坏构建。但你也不应该"Go dark" 为自己保留这么多代码......

在这种情况下建议的程序是什么?

【问题讨论】:

    标签: tdd continuous-integration development-process


    【解决方案1】:

    不要事先决定所有接口。以典型的 TDD 节奏逐步开发:编写测试;使测试通过;重构。这应该使所有内容保持良好状态,栏将始终为绿色,您可以签入代码而不必担心会破坏构建。

    它需要不同的代码编写风格,但你最终会习惯这种节奏的。

    【讨论】:

    • 我认为在没有任何概念分析的情况下开始 hacking 是一件坏事。它会导致无法维护,有时甚至不是很合乎逻辑的代码。想象一下,当所有团队成员都同样熟练时,您的情况并不理想,但也有相当数量的初级人员。
    • Petr,我并不是说人们应该在没有任何概念分析的情况下进行黑客攻击。代码的分析和目标还在。只是还没有决定表格;-)。我对大三学生的经验是,当你告诉他们编写测试时,他们会产生更好的代码。
    【解决方案2】:

    如果您知道由于当前缺少功能而无法通过那些测试,那该怎么办?

    表明您也在跳过测试!正如他们在 Oz 中所说,真的让它“像被困的猪一样”尖叫! (-:

    当您添加功能时,启用相关测试并保持“您的栏绿色!”

    这里是 The Pragmatic Programmers 上的 another great article,其中包括让其他人看到破窗。

    HTH

    干杯,

    罗伯

    【讨论】:

      猜你喜欢
      • 2011-08-02
      • 2013-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多