diff options
| author | Nick Merwin <[email protected]> | 2017-02-05 12:35:46 -0800 |
|---|---|---|
| committer | Nick Merwin <[email protected]> | 2017-02-05 12:35:46 -0800 |
| commit | 15750503b69c3143b3020fa5d4fe4fc1d455356e (patch) | |
| tree | 6119c9160780898ed4504ac3c082407202fef24d | |
| parent | c81c084fc7280c68e8dc470c31e7291eea183c22 (diff) | |
| download | node-coveralls-15750503b69c3143b3020fa5d4fe4fc1d455356e.tar.xz node-coveralls-15750503b69c3143b3020fa5d4fe4fc1d455356e.zip | |
branching WIPbranching
| -rw-r--r-- | lib/convertLcovToCoveralls.js | 16 | ||||
| -rw-r--r-- | package.json | 2 | ||||
| -rw-r--r-- | test/convertLcovToCoveralls.js | 29 |
3 files changed, 44 insertions, 3 deletions
diff --git a/lib/convertLcovToCoveralls.js b/lib/convertLcovToCoveralls.js index 68687bd..521e749 100644 --- a/lib/convertLcovToCoveralls.js +++ b/lib/convertLcovToCoveralls.js @@ -12,22 +12,34 @@ var detailsToCoverage = function(length, details){ return coverage; }; +var detailsToBranches = function(details){ + var branches = []; + details.forEach(function(obj){ + ['line','block','branch','taken'].forEach(function(key){ + branches.push(obj[key] || 0); + }); + }); + return branches; +}; + var convertLcovFileObject = function(file, filepath){ var rootpath = filepath; filepath = path.resolve(rootpath, file.file); var source = fs.readFileSync(filepath, 'utf8'); var lines = source.split("\n"); var coverage = detailsToCoverage(lines.length, file.lines.details); + var branches = detailsToBranches(file.branches.details); return { name : path.relative(rootpath, path.resolve(rootpath, file.file)).split( path.sep ).join( "/" ), source : source, - coverage : coverage }; + coverage : coverage, + branches : branches }; }; var cleanFilePath = function(file) { if (file.indexOf('!') > -1) { var regex = /^(.*!)(.*)$/g; var matches = regex.exec(file); - return matches[matches.length-1]; + return matches[matches.length-1]; } return file; diff --git a/package.json b/package.json index 9777196..a8fa62d 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "coverage", "coveralls" ], - "version": "2.11.15", + "version": "2.12.0", "bugs": { "url": "https://github.com/nickmerwin/node-coveralls/issues" }, diff --git a/test/convertLcovToCoveralls.js b/test/convertLcovToCoveralls.js index 25a0e97..9a7789c 100644 --- a/test/convertLcovToCoveralls.js +++ b/test/convertLcovToCoveralls.js @@ -88,6 +88,35 @@ describe("convertLcovToCoveralls", function(){ }); }); + it ("should handle branch coverage data", function(done){ + process.env.TRAVIS_JOB_ID = -1; + var lcovpath = __dirname + "/../fixtures/istanbul.lcov"; + var input = fs.readFileSync(lcovpath, "utf8"); + var libpath = "/Users/deepsweet/Dropbox/projects/svgo/lib"; + var sourcepath = path.resolve(libpath, "svgo/config.js"); + + var originalReadFileSync = fs.readFileSync; + fs.readFileSync = function(filepath) { + if (filepath === sourcepath) { + return ''; + } + + return originalReadFileSync.apply(fs, arguments); + }; + + var originalExistsSync = fs.existsSync; + fs.existsSync = function () { return true; }; + + convertLcovToCoveralls(input, {filepath: libpath}, function(err, output){ + fs.readFileSync = originalReadFileSync; + fs.existsSync = originalExistsSync; + + should.not.exist(err); + output.source_files[0].branches.slice(0,8).should.eql([18,1,0,85,18,1,1,2]); + done(); + }); + }); + it ("should ignore files that do not exists", function(done){ process.env.TRAVIS_JOB_ID = -1; var lcovpath = __dirname + "/../fixtures/istanbul.lcov"; |
