Skip to content

Commit dd08c48

Browse files
committed
feat(test): Add code coverage for karma runs
1 parent c3fd9c7 commit dd08c48

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

addon/ng2/blueprints/ng2/files/config/karma.conf.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ module.exports = function (config) {
44
frameworks: ['jasmine'],
55
plugins: [
66
require('karma-jasmine'),
7-
require('karma-chrome-launcher')
7+
require('karma-chrome-launcher'),
8+
require('karma-coverage'),
9+
require('karma-remap-istanbul')
810
],
911
customLaunchers: {
1012
// chrome setup for travis CI using chromium
@@ -30,8 +32,18 @@ module.exports = function (config) {
3032
// Vendor packages might include spec files. We don't want to use those.
3133
'dist/vendor/**/*.spec.js'
3234
],
33-
preprocessors: {},
34-
reporters: ['progress'],
35+
preprocessors: {
36+
'dist/!(vendor)/**/!(*spec).js': ['coverage']
37+
},
38+
reporters: ['progress', 'coverage', 'karma-remap-istanbul'],
39+
coverageReporter: {
40+
type : 'json',
41+
subdir: '.'
42+
},
43+
remapIstanbulReporter: {
44+
src: 'coverage/coverage-final.json',
45+
reports: { html: 'coverage/report' },
46+
},
3547
port: 9876,
3648
colors: true,
3749
logLevel: config.LOG_INFO,

addon/ng2/blueprints/ng2/files/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
"jasmine-spec-reporter": "^2.4.0",
4343
"karma": "^0.13.15",
4444
"karma-chrome-launcher": "^0.2.3",
45+
"karma-coverage": "^1.0.0",
4546
"karma-jasmine": "^0.3.8",
47+
"karma-remap-istanbul": "^0.1.0",
4648
"protractor": "^3.3.0",
4749
"ts-node": "^0.5.5",
4850
"tslint": "^3.6.0",

tests/e2e/e2e_workflow.spec.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,14 @@ describe('Basic end-to-end Workflow', function () {
177177
});
178178
});
179179

180+
it('Can generate coverage report after test run', function () {
181+
var coverageFilePath = path.join(process.cwd(), 'coverage', 'coverage-final.json');
182+
var resultsRemapFolderPath = path.join(process.cwd(), 'coverage', 'report');
183+
184+
expect(existsSync(coverageFilePath)).to.equal(true);
185+
expect(existsSync(resultsRemapFolderPath)).to.equal(true);
186+
});
187+
180188
it('Can create a test service using `ng generate service test-service`', function () {
181189
return ng(['generate', 'service', 'test-service']).then(function () {
182190
var serviceDir = path.join(process.cwd(), 'src', 'app');
@@ -415,7 +423,7 @@ describe('Basic end-to-end Workflow', function () {
415423
expect('build failed where it should have succeeded').to.equal('');
416424
});
417425
});
418-
426+
419427
it('Serve and run e2e tests after all other commands', function () {
420428
this.timeout(240000);
421429

0 commit comments

Comments
 (0)