javascript 单元测试覆盖率工具,及Grunt集成
2013-03-12 21:10
190 查看
js单元测试Unit Test的工具包括Jasmine, Mocha, NodeUnit, JsTestDriver等。
以Jasmine最为流行,因为其良好的语义和丰富的Mocking机制。
无论使用Grunt.js或是Maven来作为项目构建工具,Jasmine都有良好的插件支持。
js单元测试其实并不为前端开发者重视,近年开始node.js以及单页面web app流行起来后,越来越多的js项目也开始采用了单元测试,至于单元测试覆盖率,对于很多js开发者还很新鲜。
笔者所在项目采用grunt.js作为项目工具。之前使用了grunt.js v0.3,采用grunt-jasmine-runner插件来运行测试,但一直苦于没有合适的覆盖率插件,后来发现了grunt-istanbul,然而两者不能够直接集成,需要对源代码进行改动,以使运行测试的浏览器(比如phantomjs)将生成的覆盖率数据,从内存中传递到grunt的上下文中。
于是,笔者在github上fork了项目,自行将两者整合成为完整的一步式插件grunt-jasmine-coverage,并发布到NPM上。
近期,grunt升级到v0.4, 官方的jasmine插件也换成了grunt-contrib-jasmine。经过笔者一番探索和讨论,发现该插件支持模板系统用于扩展功能,而且已有热心人制作了用于覆盖率的模板grunt-template-jasmine-istanbul。经过与其作者的讨论,现在该模板已经可以很好的支持同时生成多份覆盖率报告。比如,cobertura格式的报告,可以用于Jenkins集成,而lcov格式的报告,可以用于Sonar集成(需要sonar-javascript插件)
有一个小技巧,项目中除了包括自己的源代码,肯定也会包含其他第三方的库,比如jquery。而对于计算覆盖率,我们可能希望将第三方代码踢除出去。这时,在grunt-contrib-jamine的配置中,记得将第三方代码置入`vender`一节中,这样grunt-template-jasmine-istanbul在做instrument时会忽略掉这些代码。
此外,grunt.js对于nodeunit也有很好的支持
以Jasmine最为流行,因为其良好的语义和丰富的Mocking机制。
无论使用Grunt.js或是Maven来作为项目构建工具,Jasmine都有良好的插件支持。
js单元测试其实并不为前端开发者重视,近年开始node.js以及单页面web app流行起来后,越来越多的js项目也开始采用了单元测试,至于单元测试覆盖率,对于很多js开发者还很新鲜。
笔者所在项目采用grunt.js作为项目工具。之前使用了grunt.js v0.3,采用grunt-jasmine-runner插件来运行测试,但一直苦于没有合适的覆盖率插件,后来发现了grunt-istanbul,然而两者不能够直接集成,需要对源代码进行改动,以使运行测试的浏览器(比如phantomjs)将生成的覆盖率数据,从内存中传递到grunt的上下文中。
于是,笔者在github上fork了项目,自行将两者整合成为完整的一步式插件grunt-jasmine-coverage,并发布到NPM上。
近期,grunt升级到v0.4, 官方的jasmine插件也换成了grunt-contrib-jasmine。经过笔者一番探索和讨论,发现该插件支持模板系统用于扩展功能,而且已有热心人制作了用于覆盖率的模板grunt-template-jasmine-istanbul。经过与其作者的讨论,现在该模板已经可以很好的支持同时生成多份覆盖率报告。比如,cobertura格式的报告,可以用于Jenkins集成,而lcov格式的报告,可以用于Sonar集成(需要sonar-javascript插件)
有一个小技巧,项目中除了包括自己的源代码,肯定也会包含其他第三方的库,比如jquery。而对于计算覆盖率,我们可能希望将第三方代码踢除出去。这时,在grunt-contrib-jamine的配置中,记得将第三方代码置入`vender`一节中,这样grunt-template-jasmine-istanbul在做instrument时会忽略掉这些代码。
此外,grunt.js对于nodeunit也有很好的支持
相关文章推荐
- 【JavaScript】Grunt,JavaScript世界构建的工具
- javascript 单元测试工具 JsUnit
- 在jenkins和sonar中集成jacoco(一)--使用jacoco收集单元测试的覆盖率
- JQuery团队打造的javascript单元测试工具QUnit介绍
- JUNIT单元测试时统计代码的覆盖率工具eclemma安装
- coverage.py - python 单元测试覆盖率统计工具
- VS2008下.NET 单元测试工具 NUnit2.5 配置与集成方法
- Android项目持续集成之单元测试及代码覆盖率
- 工具分享:JsMockito (JavaScript 单元测试工具)
- 对 JavaScript 进行单元测试的工具
- java单元测试覆盖率工具-clover
- Eclipse - UT - Eclipse 中单元测试覆盖率统计工具
- JavaScript单元测试系列二:将Jasmine集成到JsTestDriver
- JavaScript单元测试工具使用—QUnit
- Java开发工具IntelliJ IDEA使用教程:单元测试和代码覆盖率
- 使用 Sublime Text 做 Javascript 编辑器 - 集成 JSHint 问题检测工具
- JSCoverage--> JavaScript 测试覆盖率检测工具(转)
- Java开发工具IntelliJ IDEA单元测试和代码覆盖率图解
- JQuery团队打造的javascript单元测试工具QUnit介绍
- JavaScript的测试覆盖率工具 - JSCoverage