web-dev-qa-db-fra.com

Regardez et relancez les tests Jest JS

La documentation Jest suggère d'utiliser npm test pour exécuter les tests.

Existe-t-il un moyen de regarder votre source et vos tests pour relancer automatiquement les tests Jest lorsque les fichiers pertinents ont été modifiés?

40
Martin Dow

Mise à jour

Merci Erin Stanfill de l'avoir souligné, Jest a déjà supporté pour relance automatique . La meilleure configuration pour package.json serait

{
  "scripts": {
    "test": "jest"
  }
}

Pour activer le mode montre, utilisez simplement

$ npm run test -- --watch
76
wuct

Si tu as npm test configuré, vous pouvez simplement exécuter npm test -- --watch.

28
Erin Stanfill

Cet exemple montre comment utiliser gulp pour exécuter vos tests Jest en utilisant jest-cli, ainsi qu'une tâche tdd gulp pour surveiller les fichiers et réexécuter les tests Jest lorsqu'un fichier change:

var gulp = require('gulp');
var jest = require('jest-cli');

var jestConfig = {
    rootDir: 'source'
};

gulp.task('test', function(done) {
    jest.runCLI({ config : jestConfig }, ".", function() {
        done();
    });
});

gulp.task('tdd', function(done) {
    gulp.watch([ jestConfig.rootDir + "/**/*.js" ], [ 'test' ]);
});

gulp.task('default', function() {
    // place code for your default task here
});
1
Martin Dow
  1. installez quelques packages Grunt:

npm install grunt-contrib-watch grunt-exec --save-dev

  1. faire un Gruntfile.js avec ce qui suit:

module.exports = function(grunt) { grunt.initConfig({ exec: { jest: 'node node_modules/jest-cli/bin/jest' }, watch: { files: ['**/*.js'], tasks: ['exec:jest'] } }); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-exec'); }

  1. puis lancez simplement:

grunt watch

1
bjfletcher