针对不同浏览器的Javascript代码的持续集成/测试

lbz*_*lbz 8 javascript performance continuous-integration unit-testing

我在Javascript中编写了一组函数,意味着在浏览器中执行(没有服务器端Javascript).

如何在不同的浏览器中再次运行单元和性能测试,并跟踪每个构建的结果?

  • 测试应在浏览器中执行
  • 测试结果应作为独立文本或html文件生成
  • 目标浏览器是Internet Explorer 7和8,最新的Firefox,最新的Chrome,最新的Safari
  • 如果需要,我可以自由设置专用的CI服务器和虚拟机

小智 9

我一直在使用Jasmine框架进行测试和JSTestDriver.作为评估的一部分,我还为CI设置了Hudson和TeamCity,但最终还是选择了TeamCity.

Jasmine是一个非常好的BDD框架,它还提供了模拟和存根功能.

正如Vojta已经指出的那样,JSTestDriver服务器允许任何浏览器连接到它,无论是本地还是远程.我已经能够连接来自Windows和MAC机器的浏览器,以及iPhone ......如果移动开发让您满意,那么很有可能连接其他移动浏览器.JSTestDriver将生成JUnit XML结果文件,Hudson或TeamCity将能够解析和报告这些文件.

正如Vojta所指出的,Eclipse插件可用于JSTestDriver.我最近转移到了WebStorm 1.0和现在的2.0(来自JetBrains的IDE),并且这个IDE也有一个插件,尽管有些错误.就JavaScript开发而言,WebStorm非常好.

我们也在编写服务器端的JS代码,Jasmine也在这里工作得很好.

我已经在亚马逊云上安装并配置了JsTestDriver/TeamCity,例如,我可以无头地运行Jasmine测试.

简而言之,在3个解决方案(Jasmine,JSTestDriver和TeamCity)之间,存在大量插件/适配器/配方,允许任意数量的设置或配置.这并不是说其他​​组合不会起作用......对我来说,这种组合到目前为止已经证明了这一点.