哈德森CI - 功能或单元测试案例?

Pet*_*rke 2 unit-testing qa hudson jenkins

我让Hudson每隔5分钟轮询一次大量项目并启动编译检查.这些包括用于java项目的ant构建,并部署到数据库代码的参考数据库,系统运行良好.

现在我处于十字路口.我已经编写了一套广泛的功能测试用例,它们可以运行许多组件.功能性我的意思是这些基本上模仿了我们的手动QA部门会做的事情.如果你愿意,黑盒测试.它们是JUnit测试用例,但绝对不是单元测试用例.我想知道这类测试是否适合5分钟的轮询,或者我应该使用更多的白盒型单元测试用例.也许功能套件应该是每晚构建的一部分?

任何意见都赞赏彼得

Lae*_*jek 6

一般情况下,您希望尽快运行测试,以便开发人员尽可能快速地获得反馈 - 否则他们不会知道他们是否会破坏某些东西,直到很久以后,他们可能已经转移到另一个部分代码 如果您的功能测试将耗费所有系统资源几个小时,那么我建议仅将其作为夜间测试的一部分,但除此之外,我建议同时运行您的功能和单元测试用例与每一个构建.两组测试都提供了有价值的反馈,并且在您运行它们之前,您并不确定系统是否稳定.

但这并不意味着你必须让两个项目都进行轮询.我们所做的就是把它分成几个不同的Hudson/Jenkins工作:

  • 一个工作轮询SCM,编译和部署项目(相当快,〜几分钟)
  • 当该工作完成后,它会自动启动第二个执行大多数功能测试的工作(5-20​​分钟,具体取决于项目)
  • 第三个工作每晚运行,并且使用需要很长时间运行或占用大量资源的测试进行更广泛的测试(需要几个小时)

这意味着它可以在第一个构建完成所有测试之前开始构建第二个构建,但仍然会为每个构建运行大部分测试.