Il y a plusieurs façons de le faire.
Il y a: la fonctionnalité de Jasmine Focused Specs (2.2): http://jasmine.github.io/2.2/focused_specs.html
Les spécifications de mise au point feront en sorte qu'elles soient les seules spécifications qui fonctionnent. Toute spécification déclarée avec fit est focalisée.
describe("Focused specs", function() {
fit("is focused and will run", function() {
expect(true).toBeTruthy();
});
it('is not focused and will not run', function(){
expect(true).toBeFalsy();
});
});
Cependant, je n'aime pas vraiment l'idée de modifier mes tests (fit et fdescribe) pour les exécuter de manière sélective. Je préfère utiliser un testeur comme karma qui peut filtrer les tests en utilisant une expression régulière.
Voici un exemple utilisant grunt .
$ grunt karma:dev watch --grep=mypattern
Si vous utilisez gulp (qui est mon lanceur de tâches préféré), vous pouvez passer des arguments dans gulp-karma avec des yargs et des modèles de correspondance en définissant la configuration de karma.
Un peu comme ça:
var Args = function(yargs) {
var _match = yargs.m || yargs.match;
var _file = yargs.f || yargs.file;
return {
match: function() { if (_match) { return {args: ['--grep', _match]} } }
};
}(args.argv);
var Tasks = function() {
var test = function() {
return gulp.src(Files.testFiles)
.pipe(karma({ configFile: 'karma.conf.js', client: Args.match()}))
.on('error', function(err) { throw err; });
};
return {
test: function() { return test() }
}
}(Args);
gulp.task('default', ['build'], Tasks.test);
Voir mon essentiel: https://gist.github.com/rimian/0f9b88266a0f63696f21
Alors maintenant, je peux exécuter une seule spécification en utilisant la description:
Mon essai local: (Exécuté 1 sur 14 (ignoré 13))
gulp -m 'triggers the event when the API returns success'
[20:59:14] Using gulpfile ~/gulpfile.js
[20:59:14] Starting 'clean'...
[20:59:14] Finished 'clean' after 2.25 ms
[20:59:14] Starting 'build'...
[20:59:14] Finished 'build' after 17 ms
[20:59:14] Starting 'default'...
[20:59:14] Starting Karma server...
INFO [karma]: Karma v0.12.31 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
WARN [watcher]: All files matched by "/spec/karma.conf.js" were excluded.
INFO [Chrome 42.0.2311 (Mac OS X 10.10.3)]: Connected on socket hivjQFvQbPdNT5Hje2x2 with id 44705181
Chrome 42.0.2311 (Mac OS X 10.10.3): Executed 1 of 14 (skipped 13) SUCCESS (0.012 secs / 0.009 secs)
[20:59:16] Finished 'default' after 2.08 s
Voir également: https://github.com/karma-runner/karma-jasmine