97

Jest文档建议使用来npm test执行测试。

当相关文件发生更改时,是否有办法监视您的源代码和测试以自动重新运行 Jest 测试?

4

8 回答 8

169

感谢 Erin Stanfill 的指出,Jest 已经支持自动重新运行。更好的配置package.json

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

要打开手表模式,只需使用

$ npm run test -- --watch

或者

$ yarn run test --watch
于 2015-05-03T11:09:25.983 回答
40

如果您已npm test配置,则可以运行npm test -- --watch.

于 2015-10-22T15:41:27.537 回答
3

在监视模式下开始测试。

jest --watch fileName.test.js

根据文档

运行与此规范名称匹配的测试(基本上与describeor中的名称匹配)。test

jest -t name-of-spec
// or in watch mode
jest --watch -t="TestName"
于 2020-02-03T14:40:32.977 回答
1
  1. 安装几个 Grunt 包:

    npm install grunt-contrib-watch grunt-exec --save-dev
    
  2. 使用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');
    }
    
  3. 然后只需运行:

    grunt watch
    
于 2014-12-11T21:47:09.143 回答
1

这个例子展示了如何使用 gulp 运行你的 Jest 测试jest-cli,以及一个tddgulp 任务来监视文件并在文件更改时重新运行 Jest 测试:

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
});
于 2015-05-31T21:21:17.657 回答
1

作为补充建议,您可以将“--watchAll”添加到您的 package.json 文件中,如下所示:

"scripts": {       
  "test": "jest --watchAll"
},

每次运行 npm test 时,默认情况下都会启用监视模式。

有关更多信息npm CLI 文档

于 2021-12-13T16:10:05.777 回答
0

我个人使用 npm 包jest-watch-typeahead

你需要做3个步骤:

  1. 安装 npm 包:

npm install --save-dev jest jest-watch-typeahead

  1. 添加到 jest.config.js 下一个代码:
module.exports = {
  watchPlugins: [
    'jest-watch-typeahead/filename',
    'jest-watch-typeahead/testname',
  ],
};
  1. 在手表模式下运行 Jest

纱线笑话--观看

于 2021-12-13T03:28:43.767 回答
0

如果要在监视模式下运行单个文件:

yarn run test --watch FileName.test.jsx
于 2021-02-11T05:59:25.880 回答