web-dev-qa-db-ja.com

Jest JSテストを見て再実行する

Jest のドキュメントでは、npm testテストを実行します。

関連するファイルが変更されたときにJestテストを自動的に再実行するために、ソースとテストを監視する方法はありますか?

40
Martin Dow

更新

指摘してくれたErin Stanfillに感謝します。Jestは 自動再実行 を既にサポートしています。 package.jsonのより良い構成は

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

時計モードをオンにするには、単に

$ npm run test -- --watch
76
wuct

あなたが持っている場合 npm test設定済み、実行できますnpm test -- --watch

28
Erin Stanfill

この例 は、gulpを使用してjest-cliを使用してJestテストを実行する方法と、ファイルが変更されたときにファイルを監視し、Jestテストを再実行するtdd gulpタスクを示します:

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. gruntパッケージをいくつかインストールします。

_npm install grunt-contrib-watch grunt-exec --save-dev_

  1. 以下を使用して_Gruntfile.js_を作成します。

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. その後、単に実行します:

_grunt watch_

1
bjfletcher