mocha + jscoverageを動かす
jscoverage - https://github.com/visionmedia/node-jscoverage
インストール
上記ページに下の方にnpmのは動かないって書いてあった。
Warning: the jscoverage npm module published by someone else does not work, clone this repo.
なのでgithubから落としてインストール。
[rossy@centos6 napp]$ su - [root@centos6 ~]# cd /usr/local/src/ [root@centos6 src]# wget https://github.com/visionmedia/node-jscoverage/zipball/master -O node-jscoverage.zip [root@centos6 src]# unzip node-jscoverage.zip [root@centos6 src]# cd visionmedia-node-jscoverage-36b3ba5/ [root@centos6 visionmedia-node-jscoverage-36b3ba5]# ./configure [root@centos6 visionmedia-node-jscoverage-36b3ba5]# make [root@centos6 visionmedia-node-jscoverage-36b3ba5]# make install [root@centos6 visionmedia-node-jscoverage-36b3ba5]# exit
準備
足し算のモジュールを用意して確認する。
[rossy@centos6 napp]$ tree . |-- lib | `-- sample.js `-- test `-- sampleTest.js 2 directories, 2 files
sample.js
exports.plus = function(x, y) { return x + y; };
sampleTest.js
var assert = require("assert") var module = require('../lib/sample'); describe('sample', function(){ describe('plus', function(){ it('should return 3', function() { assert.equal(3, module.plus(2, 1)); }) }) })
動作確認
jscoverageしてカバレッジ用のコードをlib-covに出力する。
[rossy@centos6 napp]$ jscoverage lib lib-cov [rossy@centos6 napp]$ tree . |-- lib | `-- sample.js |-- lib-cov | `-- sample.js `-- test `-- sampleTest.js 3 directories, 3 files
カバレッジ用にrequireの部分を書き換える。
sampleTest.js
var assert = require("assert") var module = process.env.TEST_COV ? require('../lib-cov/sample') : require('../lib/sample'); describe('sample', function(){ describe('plus', function(){ it('should return 3', function() { assert.equal(3, module.plus(2, 1)); }) }) })
実行する。
[rossy@centos6 napp]$ TEST_COV=1 mocha --reporter html-cov > coverage.html
開く。