在最近的工作中接触到了TDD,其实严格的说也不能算纯粹的TDD,不过test已经覆盖了大部分的代码功能点,持续集成方面采用的软件是anthill,当然还有CruiseControl可以选择。
有关TDD和持续集成都足够独立成文,也有很多相关的介绍文章,这里只是简单描述下我们的做法:
1。保证大部分功能点都有相关的test(因为某些原因,我们没有做到TDD要求的测试先行,有待以后改进)
2。在ant脚本中加入JUnit test部分,目的是达到自动执行批量test并且能够test fail->build fail。
3。在版本控制器(svn)上加上anthill的支持
这样协作开发的步骤就是:从svn update 代码->首先进行cleanbuild确保修改前的代码是无错的->进行代码及相应test的修改(按照TDD这里的顺序应该是反过来)- >再次cleanbuild确保修改后的代码是无错的->svn commit->通过anthill web界面进行build查看结果
全部正确就算完成了一次修改,可以看出test和持续集成的作用,既保证了代码实时的正确性,又保证了trouble shooting的准确快速。
无怪spring和pico的作者都提到TDD从某种程度上讲是致瘾的,习惯了它的开发者很难再回到原来的开发模式。想来一定是会感到缺乏安全感吧:)回想以前总是担忧自己项目中bug横行却无计可施的日子,恐怕真的离不开test了。
必要的软件:
Eclipse-最重要的了,提供了对Junit和Refactoring的良好支持
JUnit-使test细致到function一级,以清晰的红绿灯显示测试的结果
Ant-支持自动化的test过程
EasyMock-如果你使用MockObject协助test
anthill(CruiseControl)-持续集成软件
推荐的参考读物:
http://news.csdn.net/news/newstopic/21/21164.shtml Martin Fowler:持续集成
Test-Driven Development A Practical Guide 测试驱动开发实用指南(中国电力出版社)jolt大奖得主哦
分享到:
相关推荐
By taking you through the development of a real web application from beginning to end, the second edition of this hands-on guide demonstrates the practical advantages of test-driven development (TDD) ...
3. **持续集成(Continuous Integration)**:频繁地将代码合并到主分支中,并运行自动化的构建和测试过程来检测任何潜在的问题。 4. **重构(Refactoring)**:不断改进代码结构,而不改变其外部行为。 #### 本书内容...
**测试驱动开发(Test-Driven Development,TDD):实践指南** 测试驱动开发是一种软件开发方法,由Kent Beck在2003年提出并推广,它强调先编写测试,然后编写满足这些测试的代码。TDD的核心原则是“测试先行”,即...
在实践中,TDD还与持续集成(Continuous Integration, CI)紧密相关。通过频繁地运行所有测试,团队可以迅速发现并修复问题,避免了集成阶段的大规模冲突和错误。 书中的例子涵盖了多种编程语言,展示了TDD在不同上...
Chapter 1, Why Should I Care for Test-Driven Development?, spells out our goal of becoming a Java developer with a TDD black belt. In order to know where we're going, we'll have to discuss and find ...
Title: Test-Driven Development with Python, 2nd Edition Length: 592 pages Edition: 2 Language: English Publication Date: 2017-08-10 ISBN-10: 1491958707 ISBN-13: 9781491958704 Table of Contents Part I...
- **持续集成**(Continuous Integration,CI):持续集成是一种实践,要求团队频繁地将代码合并到共享仓库中,并自动执行构建和测试。这有助于早期发现并修复问题。 - **自动化构建与部署**:通过配置自动化构建...
在实际应用中,TDD常与持续集成(Continuous Integration, CI)相结合,通过自动化的构建和测试流程,确保每次代码提交后都能及时发现潜在的问题。 总结来说,TDD是一种强调先测试后编码的开发方式,它强调编写可...
持续集成(Continuous Integration, CI)是一种软件开发实践,要求开发人员频繁地将代码提交到共享仓库,以便自动构建和测试。结合TDD,CI可以帮助确保每次提交都符合项目的质量标准,并且可以在早期发现问题。 ###...
此外,书中还涉及了持续集成(Continuous Integration,CI)和持续部署(Continuous Deployment,CD)的概念,这些是现代敏捷开发中的重要组成部分。读者将学习如何配置自动化测试,以及如何利用Jenkins、Travis CI...
By taking you through the development of a real web application from beginning to end, the second edition of this hands-on guide demonstrates the practical advantages of test-driven development (TDD) ...
5. **持续集成(Continuous Integration, CI)**:TDD实践中,频繁的代码提交和测试执行是关键。CI工具(如Jenkins、Travis CI、GitHub Actions等)可以帮助自动化构建和测试过程,确保代码的每次更改都不会引入新的...
9. **持续集成**:TDD与持续集成(Continuous Integration)相结合,可以进一步提高软件质量,确保团队成员的代码能够顺利合并。 通过TDD,开发者可以更早地发现和修复问题,减少调试时间,并且能够更快地响应需求...
"kata2TDD-FizzBuzz:Kata TDD - 持续集成 - Fizz Buzz" 是一个编程练习,旨在帮助开发者通过测试驱动开发(Test-Driven Development, TDD)方法来实现一个Fizz Buzz问题,并结合持续集成(Continuous Integration, C...
在实际项目中,TDD也与其他实践相结合,如持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)。例如,我们可以使用Jenkins、Travis CI或GitHub Actions设置自动化测试,每次代码提交后...