I have similar set up as /test/app/, I get the coverage report, however when I attempt to drill down to file to see which line has been covered it throws following error
{"app":"some_app_name","name":"app","hostname":"some_host_name","pid":26468,"level":30,"msg":"Express listening on port 10010","time":"2014-04-04T22:36:04.110Z","v":0}
TypeError: Cannot set property 'covered' of undefined
at /some_path/node_modules/istanbul/lib/report/html.js:156:66
at Array.forEach (native)
at annotateLines (/some_path/node_modules/istanbul/lib/report/html.js:154:28)
at HtmlReport.Report.mix.writeDetailPage (/some_path/node_modules/istanbul/lib/report/html.js:370:9)
at Object.render (/some_path/node_modules/istanbul-middleware/lib/core.js:211:16)
at /some_path/node_modules/istanbul-middleware/lib/handlers.js:50:14
at callbacks (/some_path/node_modules/express/lib/router/index.js:164:37)
at param (/some_path/node_modules/express/lib/router/index.js:138:11)
at pass (/some_path/node_modules/express/lib/router/index.js:145:5)
at Router._dispatch (/some_path/node_modules/express/lib/router/index.js:173:5)
code (starter.js)
/*jslint nomen: true */
var nopt = require('nopt'),
config = nopt({ coverage: Boolean }),
istanbulMiddleware = require('istanbul-middleware'),
coverageRequired = config.coverage,
port = 8888;
if (coverageRequired) {
console.log('Turning on coverage; ensure this is not production');
istanbulMiddleware.hookLoader('/some_path_to_root_of_app/', { verbose: true });
}
console.log('Starting server at: http://localhost:' + port);
if (!coverageRequired) {
console.log('Coverage NOT turned on, run with --coverage to turn it on');
}
require('./server/');
code (server/index.js relevant part of code)
var publicDir = path.resolve(__dirname, '.', 'public');
var istanbulMiddleware = require('istanbul-middleware');
var url = require('url');
var app = express();
app.use('/coverage', istanbulMiddleware.createHandler({ verbose: true, resetOnGet: true }));
app.use(istanbulMiddleware.createClientHandler(publicDir, {matcher: matcher}));
function matcher(req) {
var parsed = url.parse(req.url);
log.info("______" + parsed);
return parsed.pathname && parsed.pathname.match(/\.js$/) && !parsed.pathname.match(/jquery/);
}
I have similar set up as
/test/app/
, I get the coverage report, however when I attempt to drill down to file to see which line has been covered it throws following errorcode (
starter.js
)code (
server/index.js
relevant part of code)