gulpfile.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. 'use strict';
  2. var gulp = require('gulp');
  3. var istanbul = require('gulp-istanbul');
  4. var mocha = require('gulp-mocha');
  5. var plato = require('gulp-plato');
  6. var runSequence = require('run-sequence');
  7. var coveralls = require('gulp-coveralls');
  8. function test(cb) {
  9. gulp
  10. .src(['index.js'])
  11. .pipe(istanbul())
  12. .on('finish', function() {
  13. gulp
  14. .src(['test/main.js'])
  15. .pipe(mocha({
  16. reporter: 'nyan'
  17. }))
  18. .pipe(istanbul.writeReports())
  19. .on('end', cb);
  20. });
  21. }
  22. function complexity() {
  23. var jsHintArgs = {
  24. options: {
  25. strict: true
  26. }
  27. },
  28. complexityArgs = {
  29. trycatch: true
  30. },
  31. platoArgs = {
  32. jshint: jsHintArgs,
  33. complexity: complexityArgs
  34. };
  35. gulp.src(['index.js'])
  36. .pipe(plato('plato', platoArgs));
  37. }
  38. function lcov() {
  39. gulp
  40. .src('coverage/**/lcov.info')
  41. .pipe(coveralls());
  42. }
  43. function ci(cb) {
  44. runSequence('test', 'complexity', cb);
  45. }
  46. gulp
  47. .task('test', test)
  48. .task('complexity', complexity)
  49. .task('coveralls', lcov)
  50. .task('ci', ci);