Added mocha tests and coverage into gulp process

This commit is contained in:
Alicia Sykes
2015-08-05 14:28:49 +01:00
parent 18459d766a
commit c9f201a3fa
5 changed files with 26 additions and 9 deletions

4
.gitignore vendored
View File

@@ -2,7 +2,5 @@ node_modules
bower_components bower_components
.idea .idea
*.idea *.idea
test/logs reports
test/awesome-reports
.log
*.log *.log

View File

@@ -6,7 +6,8 @@
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node ./bin/www", "start": "node ./bin/www",
"test": "mocha" "test": "mocha",
"cover": "istanbul cover node_modules/mocha/bin/_mocha -- -R spec"
}, },
"main": "app.js", "main": "app.js",
"repository": { "repository": {
@@ -39,6 +40,7 @@
"gulp-csslint": "^0.1.5", "gulp-csslint": "^0.1.5",
"gulp-filesize": "0.0.6", "gulp-filesize": "0.0.6",
"gulp-footer": "^1.0.5", "gulp-footer": "^1.0.5",
"gulp-istanbul": "^0.10.0",
"gulp-jshint": "^1.11.2", "gulp-jshint": "^1.11.2",
"gulp-less": "^3.0.3", "gulp-less": "^3.0.3",
"gulp-minify-css": "^1.2.0", "gulp-minify-css": "^1.2.0",

View File

@@ -3,14 +3,14 @@ var gulp = require('gulp');
var bSync = require('browser-sync'); var bSync = require('browser-sync');
var CONFIG = require('../tasks/config').CONFIG; var CONFIG = require('../tasks/config').CONFIG;
gulp.task('browser-sync', ['nodemon', 'scripts', 'styles'], function () { gulp.task('browser-sync', ['nodemon', 'scripts', 'styles', 'test'], function () {
bSync.init({ bSync.init({
files: [CONFIG.SOURCE_ROOT+'/**/*.*'], files: [CONFIG.SOURCE_ROOT+'/**/*.*'],
proxy: 'http://localhost:3000', proxy: 'http://localhost:3000',
port: 4000, port: 4000,
browser: ['google chrome'] browser: ['google chrome']
}); });
gulp.watch(CONFIG.SOURCE_ROOT+'/**/*.{js,coffee}', ['scripts']); gulp.watch(CONFIG.SOURCE_ROOT+'/**/*.{js,coffee}', ['scripts', 'test']);
gulp.watch(CONFIG.SOURCE_ROOT+'/**/*.{css,less}', ['styles']); gulp.watch(CONFIG.SOURCE_ROOT+'/**/*.{css,less}', ['styles']);
gulp.watch(CONFIG.SOURCE_ROOT+"/**/*").on('change', bSync.reload); gulp.watch(CONFIG.SOURCE_ROOT+"/**/*").on('change', bSync.reload);
gulp.watch("views/**/*.jade").on('change', bSync.reload); gulp.watch("views/**/*.jade").on('change', bSync.reload);

View File

@@ -1,9 +1,25 @@
var gulp = require('gulp'); var gulp = require('gulp');
var mocha = require('gulp-mocha'); var mocha = require('gulp-mocha');
var istanbul = require('gulp-istanbul');
require('coffee-script/register') require('coffee-script/register')
/* Run all tests and produce coverage report */
gulp.task('test', function (cb) {
gulp.src(['source/**/*.js', 'main.js'])
.pipe(istanbul()) // Covering files
.pipe(istanbul.hookRequire()) // Force `require` to return covered files
.on('finish', function () {
gulp.src(['test/*.{js,coffee}'])
.pipe(mocha())
.pipe(istanbul.writeReports()) // Creating the reports after tests ran
.pipe(istanbul.enforceThresholds({ thresholds: { global: 90 } })) // Enforce a coverage of at least 90%
.on('end', cb);
});
});
/* Run Mocha tests */ /* Run Mocha tests */
gulp.task('test', function () { gulp.task('mocha', function () {
return gulp.src('test/*.{js,coffee}') return gulp.src('test/*.{js,coffee}')
.pipe(mocha({compiler: 'nyan'})); .pipe(mocha({compiler: 'nyan'}));
}); });

View File

@@ -1,3 +1,4 @@
--compilers coffee:coffee-script/register --compilers coffee:coffee-script/register
--recursive --reporter mochawesome
--reporter mochawesome --reporter-options reportDir=./test/awesome-reports --reporter-options reportDir=./reports/awesome-reports
--recursive