Jest文档建议使用来npm test
执行测试。
当相关文件发生更改时,是否有办法监视您的源代码和测试以自动重新运行 Jest 测试?
感谢 Erin Stanfill 的指出,Jest 已经支持自动重新运行。更好的配置package.json
是
{
"scripts": {
"test": "jest"
}
}
要打开手表模式,只需使用
$ npm run test -- --watch
或者
$ yarn run test --watch
如果您已npm test
配置,则可以运行npm test -- --watch
.
在监视模式下开始测试。
jest --watch fileName.test.js
根据文档
运行与此规范名称匹配的测试(基本上与describe
or中的名称匹配)。test
jest -t name-of-spec
// or in watch mode
jest --watch -t="TestName"
安装几个 Grunt 包:
npm install grunt-contrib-watch grunt-exec --save-dev
使用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');
}
然后只需运行:
grunt 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
});
作为补充建议,您可以将“--watchAll”添加到您的 package.json 文件中,如下所示:
"scripts": {
"test": "jest --watchAll"
},
每次运行 npm test 时,默认情况下都会启用监视模式。
有关更多信息npm CLI 文档
我个人使用 npm 包jest-watch-typeahead。
你需要做3个步骤:
npm install --save-dev jest jest-watch-typeahead
module.exports = { watchPlugins: [ 'jest-watch-typeahead/filename', 'jest-watch-typeahead/testname', ], };
纱线笑话--观看
如果要在监视模式下运行单个文件:
yarn run test --watch FileName.test.jsx