From f025d5fa2b9bd68305827f83167d294ea9724ddf Mon Sep 17 00:00:00 2001 From: designblooz Date: Thu, 12 Jan 2017 11:25:52 -0500 Subject: [PATCH 1/2] support nested coverageFolder --- config/coverage-nested-folder.js | 7 +++++++ lib/coverage-merge.js | 10 ++++++---- test/integration/coverage-test.js | 21 +++++++++++++++++++++ 3 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 config/coverage-nested-folder.js diff --git a/config/coverage-nested-folder.js b/config/coverage-nested-folder.js new file mode 100644 index 00000000..ae5fac98 --- /dev/null +++ b/config/coverage-nested-folder.js @@ -0,0 +1,7 @@ +/*jshint node:true*/ +'use strict'; + +module.exports = { + coverageFolder: 'coverage/abc/easy-as/123', + parallel: true +}; diff --git a/lib/coverage-merge.js b/lib/coverage-merge.js index ba5127a8..47b63556 100644 --- a/lib/coverage-merge.js +++ b/lib/coverage-merge.js @@ -16,12 +16,14 @@ module.exports = { run: function () { var collector = new Istanbul.Collector(); var _config = this._getConfig(); - var projectRoot = this.project.root; - var reporter = new Istanbul.Reporter(null, path.join(projectRoot, _config.coverageFolder)); - var coverageDirRegex = new RegExp(_config.coverageFolder + '_.*'); + var coverageFolderSplit = _config.coverageFolder.split('/'); + var coverageFolder = coverageFolderSplit.pop(); + var coverageRoot = this.project.root + '/' + coverageFolderSplit.join('/'); + var coverageDirRegex = new RegExp(coverageFolder + '_.*'); + var reporter = new Istanbul.Reporter(null, path.join(coverageRoot, coverageFolder)); return new Promise(function (resolve, reject) { - dir.readFiles(projectRoot, {matchDir: coverageDirRegex, match: /coverage-final\.json/}, + dir.readFiles(coverageRoot, {matchDir: coverageDirRegex, match: /coverage-final\.json/}, function (err, coverageSummary, next) { if (err) { reject(err); diff --git a/test/integration/coverage-test.js b/test/integration/coverage-test.js index 4749da81..4229aff5 100644 --- a/test/integration/coverage-test.js +++ b/test/integration/coverage-test.js @@ -92,4 +92,25 @@ export default Ember.Route.extend({ expect(summary['tests/dummy/app/templates/application.hbs'].lines.pct).to.equal(100); }); }); + + it('uses nested coverageFolder and parallel configuration and run merge-coverage', function() { + this.timeout(100000); + var coverageFolder = 'coverage/abc/easy-as/123'; + + expect(dir(coverageFolder)).to.not.exist; + fs.copySync('config/coverage-nested-folder.js', 'config/coverage.js'); + return runCommand('ember', ['exam', '--split=2', '--parallel=true'], {env: {COVERAGE: true}}).then(function() { + expect(dir(coverageFolder)).to.not.exist; + return runCommand('ember', ['coverage-merge']); + }).then(function() { + expect(file(coverageFolder + '/lcov-report/index.html')).to.not.be.empty; + expect(file(coverageFolder + '/index.html')).to.not.be.empty; + var summary = fs.readJSONSync(coverageFolder + '/coverage-summary.json'); + expect(summary.total.lines.pct).to.equal(100); + expect(summary['tests/dummy/app/resolver.js'].lines.pct).to.equal(100); + expect(summary['tests/dummy/app/app.js'].lines.pct).to.equal(100); + expect(summary['tests/dummy/app/router.js'].lines.pct).to.equal(100); + expect(summary['tests/dummy/app/templates/application.hbs'].lines.pct).to.equal(100); + }); + }); }); From 3a702aa5462a50efb50a871c43be94e27a484621 Mon Sep 17 00:00:00 2001 From: Paul Kim Date: Wed, 27 Sep 2017 10:44:03 -0400 Subject: [PATCH 2/2] fix test --- test/integration/coverage-test.js | 2 +- {config => tests/dummy/config}/coverage-nested-folder.js | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {config => tests/dummy/config}/coverage-nested-folder.js (100%) diff --git a/test/integration/coverage-test.js b/test/integration/coverage-test.js index 4229aff5..72cb7a4f 100644 --- a/test/integration/coverage-test.js +++ b/test/integration/coverage-test.js @@ -98,7 +98,7 @@ export default Ember.Route.extend({ var coverageFolder = 'coverage/abc/easy-as/123'; expect(dir(coverageFolder)).to.not.exist; - fs.copySync('config/coverage-nested-folder.js', 'config/coverage.js'); + fs.copySync('tests/dummy/config/coverage-nested-folder.js', 'tests/dummy/config/coverage.js'); return runCommand('ember', ['exam', '--split=2', '--parallel=true'], {env: {COVERAGE: true}}).then(function() { expect(dir(coverageFolder)).to.not.exist; return runCommand('ember', ['coverage-merge']); diff --git a/config/coverage-nested-folder.js b/tests/dummy/config/coverage-nested-folder.js similarity index 100% rename from config/coverage-nested-folder.js rename to tests/dummy/config/coverage-nested-folder.js