Teste de estilo Ruby Guard com Node.js

Ótima maneira de automatizar a execução de testes / especificações ao construir um projeto JavaScript. Estou usando o mocha para os testes, mas tenho um pequeno Makefile legal para construir o projeto e executar testes / cobertura.

Eu tendo a manter todos os meus arquivos dev / library em uma pasta lib / ou src / e meus arquivos de teste em uma pasta test / ou spec /.

Primeiro, crie um pequeno script baseado em Node.js usando nodewatch para observar seus testes de unidade ou diretório de origem, como utils / watcher.js.

var watch = require('nodewatch');
var util = require('util');
var exec = require('child_process').exec;

watch

.add("./test", true)
.add("./src", true)
.onChange(function(file, prev, curr, action) {

exec("make test", function(error, stdout, stderr) {

util
.print('stdout: ' + stdout);
util
.print('stderr: ' + stderr);

if (error !== null) {
console
.log('exec error: ' + error);
}

});

});

Agora crie um Makefile para simplificar alguns comandos. Embora isso não seja necessário, é um bom hábito adquirir e significa que você sempre pode executar o comando ‘make test’ a qualquer momento para testar.

test:
mocha
--recursive --reporter spec --ui bdd --colors --grunt

watch
:
node utils
/watcher.js

.PHONY test watch

Os benefícios aqui são o Mocha também me dá notificações de rosnado, então eu nem preciso sair do meu editor e posso ver isso disparar toda vez que salvo um arquivo nas pastas de desenvolvimento ou de teste.