加入了thoughtworks之后,自己确实是心里放松很多,找工作那一段时间的焦虑不安烦躁的状态也随之而去,想着终于可以好好地和朋友们一起出去玩玩了。但是由于我们自身的能力还不足以胜任去了公司之后的工作,所有,由林老师带队,帮我们提升自身能力。所以,学习开始啦!
我们这一次是使用一个thoughtworks第一期考试系统这个项目作为辅助来达到提高自己的水平的目的!
在做项目时,林老师将我们需要学习的知识点列了出来,我和我的pair领取了学习jenkins的任务目标。
好了!开始学习啦!
什么是jenkins
jenkins是一个可扩展的持续集成引擎。
jenkins主要用于
- 持续、自动的构建/测试软件项目
- 监控一些定时执行的任务
什么是持续集成
目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:
- 软件构建自动化 :配置完成后,CI系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。
- 构建可持续的自动化检查 :CI系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力。
- 构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS等等)给相关的当事人。
- 生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。
jenkins的优点
- Jenkins一切配置都可以在web界面上完成。
- 支持Maven的模块(Module),Jenkins对Maven做了优化,因此它能自动识别Module,每个Module可以配置成一个job。相当灵活。
- 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然。
- 构件指纹(artifact fingerprint),每次build的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载。
jenkins在本项目中所起的作用
- 作为测试标准,配置在一台电脑上
- 每间隔一定的时间,查询github是否有新的代码push,并且自动从github上push下最新的代码
- 并且根据题目找处相应代码的测试,自动在jenkins中运行测试,并且得出测试结果,根据测试结果反馈和执行后续功能