gpt4 book ai didi

tdd - TDD 所需的基础设施?

转载 作者:行者123 更新时间:2023-12-04 12:25:44 27 4
gpt4 key购买 nike

我对单元测试和 TDD“相对较新”。直到最近,我才完成了我的第一个(至少在理论上)代码覆盖率为 100% 的生产应用程序。我在以前的项目中也做过一段时间的单元测试,但不是以真正的 TDD 方式和良好的代码覆盖率。这一直是事后的想法。不过我觉得我现在对它有很好的把握。

我还尝试在 TDD 和单元测试方面对团队的其他成员进行培训,以便我们可以共同成长并开始在我们所有的应用程序中进行单元测试,并最终进展到使用自动构建和连续进行完整的 TDD一体化。我发了 a thread here关于我的攻击计划/培训议程的评论和批评。

其中一个回复(实际上是投票最高的)建议我在继续培训之前首先设置基础设施。不幸的是,我没有接触过这个,并且很难在这些主题上进行谷歌搜索,因为 CruiseControl.NET/nAnt/等的页面并没有真正解释“为什么”我们应该设置它以及“如何”将所有东西连接在一起。

我们是一家小商店(大约 10 名开发人员),几乎完全使用微软技术,并在 VB.NET 中进行开发。我们希望最终开始使用 C#,但那是另一个时间。我一直在使用 VS2008 附带的 MSTest 项目进行单元测试,并且我一直在使用 Visual Studio 构建我的应用程序,并使用 MSI 安装项目进行部署......我们也(不幸地)使用 VSS 进行我们的源控制 -但这也在砧板上,我真的很想摆脱它并使用颠覆。

我知道我需要将 CruiseControl.NET 用于 CI,并使用 nAnt 或 MSBuild 来构建应用程序。我可能需要一个构建服务器来运行所有这些构建。但是我找不到任何“连接”点并解释它们如何相互交互的东西,构建服务器上应该有什么,何时应该使用构建服务器进行构建(是否仅用于部署构建,甚至当您只是想在您的本地环境中进行一些小的更改后编译您正在开发的应用程序?)。我还计划取消 MSTest,因为我发现它有问题,将改用 nUnit。

任何人都可以阐明我从“知道如何进行 TDD”到“建立适当的基础设施以便整个团队都可以做到并一起工作”之间的差距吗?我确实了解什么是持续集成,但同样,我不确定构建服务器应该如何设置以及它如何与所有内容连接,以及我们为什么需要一个(例如,管理的音调)。

非常感谢你花时间陪伴。

我需要 finalbuilder 的哪一部分? 似乎与 final builder 和 teamcity 有一些重叠。 Finalbuilder 服务器似乎是一个 CI 服务器,所以我猜我不需要那个。 FinalBuilder 似乎是一个构建服务器 - 但我认为 TeamCity 也是一个构建服务器......而 Automise 似乎是一个可视化的 Windows 自动化工具,就像某种 Winforms 应用程序的开发平台......

_我在 The Team City Supported Apps Diagram 中也没有看到对最终构建器的支持: _

最佳答案

看看我几周前做的网络研讨会 - How To Start Unit Testing Successfully .在那个网络研讨会中,我谈到了工具和单元测试的最佳实践,它针对的是像您一样想要在组织中引入单元测试的开发人员。

您希望将 CI(持续集成)流程部署到位的第一项业务需要三个工具:

  • 源代码管理
  • 构建服务器
  • 构建客户端/脚本

  • 我希望你已经有了某种形式的源代码控制,让我们来谈谈另外两个。

    构建服务器 - 检查源代码控制,当它发生变化(或满足其他条件)时,在某些客户端(或同一台机器)上运行构建脚本,有几个构建服务器可用我推荐 JetBrain 的 TeamCity它易于安装和使用(出色的 Web 界面)并且对多达 20 个开发人员(就是您)免费。

    构建脚本 - 在您的构建客户端上,您希望运行一个构建脚本来构建您的解决方案并运行您的单元测试。 TeamCity 具有一些基本的构建和测试功能,但对于更高级的选项(构建安装程序、文档等),您需要一些我们使用的脚本运行程序 FinalBuilder - 它不是免费的,但有很好的编辑器。如果您正在寻找免费的替代方案,请查看 ANTNANT - 但要准备好编辑大量的 XML。

    其他工具 - 因为成功的单元测试的一个重要部分是在开发人员的机器上编写和运行测试是多么容易,我建议您检查是否有更好的 IDE 或外部工具可以帮助开发人员编写和运行他们的单元测试。

    关于tdd - TDD 所需的基础设施?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1902633/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com