In der Jest- Dokumentation wird vorgeschlagen npm test
, Tests auszuführen.
Gibt es eine Möglichkeit, Ihre Quelle und Tests zu beobachten, um Jest-Tests automatisch erneut auszuführen, wenn relevante Dateien geändert wurden?
In der Jest- Dokumentation wird vorgeschlagen npm test
, Tests auszuführen.
Gibt es eine Möglichkeit, Ihre Quelle und Tests zu beobachten, um Jest-Tests automatisch erneut auszuführen, wenn relevante Dateien geändert wurden?
Antworten:
Dank Erin Stanfill für den Hinweis unterstützt Jest bereits die automatische Wiederaufnahme . Die bessere Konfiguration für package.json
wäre
{
"scripts": {
"test": "jest"
}
}
Um den Uhrenmodus einzuschalten, verwenden Sie einfach
$ npm run test -- --watch
Oder
$ yarn run test --watch
Wenn Sie npm test
konfiguriert haben, können Sie einfach ausführen npm test -- --watch
.
Starten Sie Ihre Tests im Überwachungsmodus.
jest --watch fileName.test.js
Gemäß Dokumentation
Führen Sie Tests aus, die diesem Spezifikationsnamen entsprechen (stimmen Sie mit dem Namen in describe
oder überein test
).
jest -t name-of-spec
// or in watch mode
jest --watch -t="TestName"
Dieses Beispiel zeigt, wie Sie gulp verwenden, um Ihre Jest-Tests mit auszuführen jest-cli
, sowie eine tdd
gulp-Aufgabe, um Dateien zu überwachen und Jest-Tests erneut auszuführen, wenn sich eine Datei ändert:
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
});
__tests__
funktioniert es nicht, obwohl ich den Standardordner verwende jestConfig
. Nachdem ich die Dokumente gelesen und ein bisschen gespielt habe, funktioniert das für mich: var jestConfig = { rootDir: "__tests__" }
Installieren Sie ein paar Grunt-Pakete:
npm install grunt-contrib-watch grunt-exec --save-dev
mach ein Gruntfile.js
mit folgendem:
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');
}
dann einfach ausführen:
grunt watch
grunt watch
Wenn dies nicht der Fall ist, wird der aktuelle Testlauf fortgesetzt, wobei Änderungen ignoriert werden, die während der Ausführung der Tests auftreten.