Npm 观察并重新运行Jest JS测试

Npm 观察并重新运行Jest JS测试,npm,jestjs,Npm,Jestjs,文档建议使用npm test执行测试 是否有一种方法可以监视源代码和测试,以便在相关文件发生更改时自动重新运行Jest测试 安装几个Grunt软件包: npm install grunt-contrib-watch grunt-exec --save-dev 使用以下内容制作grunfile.js: module.exports = function(grunt) { grunt.initConfig({ exec: { jest: 'node

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

是否有一种方法可以监视源代码和测试,以便在相关文件发生更改时自动重新运行Jest测试

  • 安装几个Grunt软件包:

    npm install grunt-contrib-watch grunt-exec --save-dev
    
  • 使用以下内容制作
    grunfile.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');
    }
    
  • 然后简单地运行:

    grunt watch
    

  • 感谢Erin Stanfill的指出,Jest已经得到了对的支持。
    package.json
    的更好配置是

    {
    “脚本”:{
    “测试”:“开玩笑”
    }
    }
    
    要打开手表模式,只需使用

    $npm运行测试--watch
    

    $纱线运行测试--观察
    
    演示如何使用gulp运行Jest测试,使用
    Jest cli
    ,以及
    tdd
    gulp任务查看文件,并在文件更改时重新运行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
    });
    

    如果您配置了
    npm测试
    ,您可以运行
    npm测试--watch

    在watch模式下启动测试

    jest --watch fileName.test.js
    
    根据文件

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


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

    yarn run test --watch FileName.test.jsx
    

    需要指出的重要一点是,如果在测试运行期间发生更改,nodemon将中断测试并重新启动<代码>grunt watch不会,它将继续当前测试运行,忽略测试运行时发生的更改。删除第一个答案可能是更好的编辑方式?这个编辑对我来说非常有用,而且乍一看,两者都很难理解。我有一个名为string.utility.spec.js的文件,当我执行“npm run test”时,它会被选中,但当我运行“npm run test--watch”时,它不会被选中。将文件重命名为“string.spec.js”将导致它被拾取并运行。奇怪。@VishalAnand npm将把--后面的所有参数直接传递给脚本。watch也可以添加到“scripts”:{“test”:“jest--watch”},然后出于某种原因,您可以只使用npm run test,尽管我使用了默认的
    \uuuuuu tests\uuuu
    文件夹,但它不适用于此
    jestConfig
    。在阅读并播放了一段之后,这对我很有用:
    var jestConfig={rootDir:“\uu测试”}
    yarn run test --watch FileName.test.jsx