【发布时间】:2009-12-14 18:31:14
【问题描述】:
我对单元测试和 TDD “相对较新”。直到最近,我才完成了我的第一个(至少在理论上)100% 代码覆盖率的生产应用程序。我在以前的项目中也做过一段时间的单元测试,但不是以真正的 TDD 方式并且具有良好的代码覆盖率。这一直是事后的想法。不过我觉得我现在已经掌握得很好了。
我还在尝试对团队的其他成员进行 TDD 和单元测试方面的培训,以便我们能够共同成长并开始在我们所有的应用程序中进行单元测试,并最终进展到完全自动化的 TDD构建和持续集成。我发布了a thread here 关于我针对 cmets 和批评的攻击计划/培训议程。
其中一个回复(实际上是投票率最高的)建议我先设置基础架构,然后再进行培训。不幸的是,我没有接触过这个,并且在谷歌上搜索这些主题很困难,因为 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 中我也没有看到对最终构建器的支持:_
【问题讨论】:
-
我认为以下链接包含有关该主题的相当详尽的信息集:martinfowler.com/articles/continuousIntegration.html
标签: tdd build-process continuous-integration