karma-coverage

The easiest way is to keep karma-coverage as a devDependency in your package.json. More details refer to https://github.com/karma-runner/karma-coverage

{
"devDependencies": {
"karma": "~0.10",
"karma-coverage": "~0.1"
}
}

example karma_code_coverage.conf.js

module.exports = function(config){
config.set({ basePath : '../../', autoWatch : true, frameworks: ['jasmine'], browsers : ['Firefox'], plugins : [
//'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-jasmine',
'karma-coverage'
], // Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun : true, // test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters : ['progress', 'coverage'],
coverageReporter:{
type:'html',
dir: 'test_out/angular/coverage/',
subdir:'report'
},
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
"src/js/angular/**/*.js":"coverage"
}
});
};

Gruntfile.js sample

module.exports = function (grunt) {

    grunt.loadNpmTasks('grunt-karma');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.initConfig({
'pkg': grunt.file.readJSON('package.json'), 'meta': {
'jsFilesForTesting': [
'src/bower_components/angular/angular.js',
'src/bower_components/angular-route/angular-route.js',
'src/bower_components/angular-resource/angular-resource.js',
'src/bower_components/angular-animate/angular-animate.js',
'src/bower_components/angular-sanitize/angular-sanitize.js',
'src/bower_components/angular-mocks/angular-mocks.js',
'src/bower_components/restangular/dist/restangular.js',
'src/bower_components/underscore/underscore.js',
'src/bower_components/jquery/jquery.js',
'src/bower_components/bootstrap/dist/js/bootstrap.js',
'src/js/usher/ajax.js',
'src/js/lib/jquery.sparkline.js',
'src/js/lib/ui-bootstrap-tpls-0.12.0.min.js',
'src/js/ui-2/common/customized-modal.js',
'test/angular/unit/**/*.js'
]
}, 'karma': {
'development': {
'configFile': 'test/angular/karma_grunt.conf.js',
'options': {
'files': [
'<%= meta.jsFilesForTesting %>',
'src/js/angular/**/*.js'
]
}
}, 'coverage':{
'configFile' : 'test/angular/karma_code_coverage.conf.js',
'options':{
'files':[
'<%= meta.jsFilesForTesting %>',
'src/js/angular/**/*.js'
]
}
}, 'dist': {
'options': {
'configFile': 'test/angular/karma_grunt_dist.conf.js',
'files': [
'<%= meta.jsFilesForTesting %>',
'dist/<%= pkg.name %>-<%= pkg.version %>.js'
]
}
}, 'minified': {
'options': {
'configFile': 'test/angular/karma_grunt_minified.conf.js',
'files': [
'<%= meta.jsFilesForTesting %>',
'dist/<%= pkg.name %>-<%= pkg.version %>.min.js'
]
}
}
}, 'jshint': {
'options': {
'reporter': require('jshint-jenkins-violations-reporter'),
'reporterOutput': 'test_out/angular/jshint.xml',
'force': true,
'jshintrc': true
},
'beforeconcat': ['src/js/angular/**/*.js']
}, 'concat': {
'dist': {
'src': ['src/js/angular/**/*.js'],
'dest': 'dist/<%= pkg.name %>-<%= pkg.version %>.js'
}
}, 'uglify': {
'options': {
'mangle': false
},
'dist': {
'files': {
'dist/<%= pkg.name %>-<%= pkg.version %>.min.js': ['dist/<%= pkg.name %>-<%= pkg.version %>.js']
}
}
}
}); grunt.registerTask('test', ['karma:development','karma:coverage']);
grunt.registerTask('coverage',['karma:coverage']);
grunt.registerTask('build',
[
'karma:development',
'karma:coverage',
'jshint',
]);
};

  

AngularJS code converage的更多相关文章

  1. Jenkins integration for AngularJS code coverage

    Install Jenkins plugins 'Cobertura' and 'HTML Publisher' 1. add Post-build Actions "Publish HTM ...

  2. Using AngularJS with .NET MVC 5

    This tip shows the use of AngularJS with .NET MVC5 application. Here is a simple step-by-step exampl ...

  3. Ultimate guide to learning AngularJS in one day

    What is AngularJS? Angular is a client-side MVC/MVVM framework built in JavaScript, essential for mo ...

  4. AngularJS实现简单的分页功能

    本篇文章由:http://xinpure.com/angularjs-simple-paging-functionality/ 初学 AngularJS, 尝试着写一些小功能 代码逻辑写得略粗糙,仅仅 ...

  5. bootstrap 练习

    bookList.html <!DOCTYPE html> <html lang="zh-cn"> <head> <!-- 父路径 --& ...

  6. Cheatsheet: 2015 08.01 ~ 08.31

    Java Beginner's Guide to MVC with Spring Framework Exploring the Spring Web MVC for Web Application ...

  7. Angular DirtyChecking(脏值检查) $watch, $apply, $digest

    Dirty Checking (脏值检查) Digest cycle and $scope Digest cycle and $scope First and foremost, AngularJS ...

  8. AnguarJS——第10章 路由

    第10章 路由 一个应用是由若个视图组合而成的,根据不同的业务逻辑展示给用户不同的视图,路由则是实现这一功能的关键. 10.1 SPA SPA(Single Page Application)指的是通 ...

  9. How to Build a Search Page with Elasticsearch and .NET

    Although SQL Server's Full-Text search is good for searching text that is within a database, there a ...

随机推荐

  1. 基于mongoDB的capped collection的性能优化

    MonitorLogging改造(消息接入) 改造前架构: 可以看出原来的流程中,大量业务分析,业务接入耦合在web服务层.大量操作,导致线程线性的挂起线程. 改造后: 将业务通讯抽象成为Monito ...

  2. 【转】android获取屏幕宽度和高度

    原文网址:http://www.cnblogs.com/howlaa/p/4123186.html 1. WindowManager wm = (WindowManager) getContext() ...

  3. Navigation Drawer(导航抽屉)

    目录(?)[-] 创建一个导航抽屉 创建抽屉布局 初始化抽屉列表 处理导航项选点击事件 监听导航抽屉打开和关闭事件 点击应用图标来打开和关闭导航抽屉 创建一个导航抽屉 导航抽屉是一个位于屏幕左侧边缘用 ...

  4. 如何区分Shapefile,Coverage,Geodatabase(转载)

    转自:http://www.cnblogs.com/linhugh/archive/2012/04/06/2435266.html 在过去20年中,矢量数据模型是GIS中变化最大的方面,例如,ESRI ...

  5. ASP.NET MVC利用PagedList分页(二)PagedList+Ajax+JsRender

    (原文) 昨天在ASP.NET MVC利用PagedList分页(一)的 最后一节提到,一个好的用户体验绝对不可能是点击下一页后刷新页面,所以今天来说说利用Ajax+PagedList实现无刷新(个人 ...

  6. [CODEVS2055]集合划分

    对于从1到N(1<=N<=3)的连续整数集合,划分成两个子集合,使得每个集合的数字之和相等.举个例子,如果N=3,对于{1,2,3}能划分成两个子集合,他们每个的所有数字和是相等的:{3} ...

  7. [LeetCode] 86. Partition List 解题思路

    Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...

  8. 深入理解 Spring 事务原理

    本文由码农网 – 吴极心原创,转载请看清文末的转载要求,欢迎参与我们的付费投稿计划! 一.事务的基本原理 Spring事务的本质其实就是数据库对事务的支持,没有数据库的事务支持,spring是无法提供 ...

  9. MAC 下安装opencv遇到问题的解决方法(安装homebrew, wget)

    遇到问题: (1)Mac安装OpenCV下载ippicv_macosx_20141027.tgz失败解决方案 先附上当时的报错信息: -- ICV: Downloading ippicv_macosx ...

  10. .NET DataTable转化为json格式

    标准的json用“分隔,不用' public static string DataSetToJson(DataTable dt) {        string json = string.Empty ...