coverage.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. var path = require('path'),
  2. spawn = require('child_process').spawn,
  3. bin = path.join.bind(null, __dirname, '..', 'node_modules', '.bin');
  4. /**
  5. * Run test suite
  6. *
  7. * @api private
  8. */
  9. function suite() {
  10. process.env.NODESASS_COV = 1;
  11. var coveralls = spawn(bin('coveralls'));
  12. var mocha = spawn(bin('_mocha'), ['--reporter', 'mocha-lcov-reporter'], {
  13. env: process.env
  14. });
  15. mocha.on('error', function(err) {
  16. console.error(err);
  17. process.exit(1);
  18. });
  19. mocha.stderr.setEncoding('utf8');
  20. mocha.stderr.on('data', function(err) {
  21. console.error(err);
  22. process.exit(1);
  23. });
  24. mocha.stdout.pipe(coveralls.stdin);
  25. }
  26. /**
  27. * Generate coverage files
  28. *
  29. * @api private
  30. */
  31. function coverage() {
  32. var jscoverage = spawn(bin('jscoverage'), ['lib', 'lib-cov']);
  33. jscoverage.on('error', function(err) {
  34. console.error(err);
  35. process.exit(1);
  36. });
  37. jscoverage.stderr.setEncoding('utf8');
  38. jscoverage.stderr.on('data', function(err) {
  39. console.error(err);
  40. process.exit(1);
  41. });
  42. jscoverage.on('close', suite);
  43. }
  44. /**
  45. * Run
  46. */
  47. coverage();