karma-runner / karma-runner/karma-coverage

Can't see the content of files parsed by browserify in coverage report

Open
#338 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
JavaScript
Stars
771
Forks
242
PR merge metrics
No merged PRs in 30d

Description

When I run my tests, I can't see the content of files parsed by browserify:

Content showed in Coverage report:

> 1 | 1× | typeof require === "function" && require("/home/aurum/projects/astreav2/src/main/angular/components/movements/movementsList/movementsList.controller.js");

My karma.conf.js:

`
module.exports = function(config) {
config.set({

basePath: './',
frameworks: ['browserify', 'jasmine'],

files: [
'./bower_components/angular/angular.js',
'./bower_components/angular-mocks/angular-mocks.js',
'./bower_components/jquery/dist/jquery.js',
'./bower_components/jquery-ui/jquery-ui.js',
'./bower_components/qtip2/jquery.qtip.js',
'./bower_components/jcrop/js/jquery.color.js',
'./bower_components/jcrop/js/jquery.Jcrop.js',
'./bower_components/ScrollToFixed/jquery-scrolltofixed.js',
'./bower_components/jquery-autosize/dist/autosize.js',
'./bower_components/angular-cookies/angular-cookies.js',
'./bower_components/angular-route/angular-route.js',
'./bower_components/angular-ui-router/release/angular-ui-router.js',
'./bower_components/angular-translate/angular-translate.js',
'./bower_components/angular-translate-loader-static-files/angular-translate-loader-static-files.js',
'./bower_components/angular-translate-storage-cookie/angular-translate-storage-cookie.js',
'./bower_components/angular-translate-storage-local/angular-translate-storage-local.js',
'./bower_components/angular-dynamic-locale/dist/tmhDynamicLocale.js',
'./bower_components/moment/moment.js',
'./bower_components/moment-business/dist/moment-business.js',
'./bower_components/angular-moment/angular-moment.js',
'./bower_components/moment-timezone/builds/moment-timezone-with-data.js',
'./bower_components/ng-file-upload/angular-file-upload.js',
'./bower_components/ng-file-upload/angular-file-upload-shim.js',
'./bower_components/angular-once/once.js',
'./bower_components/angular-bootstrap/ui-bootstrap.js',
'./bower_components/angular-bootstrap/ui-bootstrap-tpls.js',
'./bower_components/angular-dragdrop/src/angular-dragdrop.js',
'./bower_components/fullcalendar/dist/fullcalendar.js',
'./bower_components/angular-ui-calendar/src/calendar.js',
'./bower_components/textAngular/dist/textAngular-rangy.min.js',
'./bower_components/textAngular/dist/textAngular.min.js',
'./bower_components/spectrum/spectrum.js',
'./bower_components/angular-inview/angular-inview.js',
'./bower_components/angular-credit-cards/release/angular-credit-cards.js',
'./bower_components/file-saver/FileSaver.js',
'./bower_components/js-xlsx/dist/xlsx.core.min.js',
'./bower_components/lodash/dist/lodash.underscore.js',
'./bower_components/ar-dropdown-multiselect/js/ar-dropdown-multiselect.js',
'./bower_components/aurum-select/dist/aurum-select.min.js',
'./bower_components/ngprogress/build/ngprogress.js',
'./bower_components/ngMask/dist/ngMask.js',
'./bower_components/angular-resource/angular-resource.js',
'./node_modules/react/dist/react.min.js',
'./node_modules/jasmine-jquery/lib/jasmine-jquery.js',
'./node_modules/react-dom/dist/react-dom.min.js',
'./node_modules/ngreact/ngReact.js',
'./node_modules/ngclipboard/dist/ngclipboard.min.js',
'./src/main/vendor/sortable.js',
'./src/main/assets/js/frontend.js',
'./src/main/assets/js/astrea-textAngular-sanitize.js',
'./src/main/assets/js/kissmetrics.js',
'./src/main/assets/js/control.js',
'./src/main/angular/utils/**/*.js',
'./src/main/angular/controllers/main/main.js',
'./src/main/angular/services/**/*.js',
'./src/main/angular/components/**/*.js',
'./src/main/angular/directives/**/*.js',
'./src/main/angular/interceptors/**/*.js',
'./src/main/angular/controllers/components/**/*.js',
'./src/main/angular/controllers/main/activitytemplate/**/*.js',
'./src/main/angular/controllers/main/admin/**/*.js',
'./src/main/angular/controllers/main/alerts/**/*.js',
'./src/main/angular/controllers/main/billing/**/*.js',
'./src/main/angular/controllers/main/calendarNew/**/*.js',
'./src/main/angular/controllers/main/contacts/**/*.js',
'./src/main/angular/controllers/main/deadline/**/*.js',
'./src/main/angular/controllers/main/hearing/**/*.js',
'./src/main/angular/controllers/main/documents/**/*.js',
'./src/main/angular/controllers/main/financial/**/*.js',
'./src/main/angular/controllers/main/folders/**/*.js',
'./src/main/angular/controllers/main/notification/**/*.js',
'./src/main/angular/controllers/main/planNew/**/*.js',
'./src/main/angular/controllers/main/search/**/*.js',
'./src/main/angular/controllers/main/tags/**/*.js',
'./src/main/angular/controllers/main/support/**/*.js',
'./src/main/angular/controllers/main/user/**/*.js',
'./src/main/angular/controllers/main/workspace/**/*.js',
'./src/main/angular/controllers/modals/**/*.js',
'./src/main/angular/controllers/public/**/*.js',
'./src/main/angular/controllers/viewer/**/*.js',
'./src/main/angular/controllers/widgets/**/*.js',
'./src/main/angular/controllers/exports/**/*.js',
'./src/main/angular/controllers/reports/**/*.js',
'./src/main/assets/languages/**/*.js',
'http://apis.google.com/js/client.js',
'./src/test/js/**/*.spec.js'
],

exclude: [
],

preprocessors: {
'src/main/angular/**/*.js': ['coverage'],
'./src/main/angular/components/**/*.js': 'browserify'
},

browserify: {
debug: true,
transform: [
['babelify', {presets: ["es2015"], plugins: ['transform-html-import-to-string']}]
]
},

coverageReporter: {
type : 'html',
dir : 'coverage/'
},

reporters: ['progress', 'coverage'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
concurrency: Infinity
})
}`

Note: Only the files in the folder 'src/main/angular/components' are using es6, and this files have the problem.
Any idea how to solve this?

Contributor guide

Open the contributing guide

Research direction

Start with the reported karma.conf.js preprocessors and the interaction between the coverage and browserify entries for src/main/angular/components/**/*.js. Reproduce the HTML coverage report with the shown configuration and compare it with the non-ES6 files; done means the parsed component files show their source content and coverage rather than only the require statement.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
testing
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.