Ó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.