该玩笑文档建议使用npm test
来执行测试。
有没有一种方法可以查看您的源代码和测试,以便在相关文件更改后自动重新运行Jest测试?
Answers:
感谢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
或中的名称匹配test
)。
jest -t name-of-spec
// or in watch mode
jest --watch -t="TestName"
此示例显示如何使用gulp使用来运行您的Jest测试jest-cli
,以及如何使用gulptdd
任务来监视文件并在文件更改时重新运行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
});
安装几个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
grunt watch
不会,它将继续当前的测试运行,而忽略测试运行时发生的更改。