Es gibt einige Möglichkeiten, wie Sie dies tun können.
Es gibt: Jasmines Feature Focused Specs (2.2): http://jasmine.github.io/2.2/focused_specs.html
Wenn Sie die Spezifikationen fokussieren, werden sie als einzige Spezifikationen ausgeführt. Jede mit fit deklarierte Spezifikation ist fokussiert.
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();
});
});
Die Idee, meine Tests (fit und fdescribe) so zu bearbeiten, dass sie selektiv ausgeführt werden, gefällt mir jedoch nicht wirklich. Ich bevorzuge einen Testläufer wie Karma, der Tests mit einem regulären Ausdruck herausfiltern kann.
Hier ist ein Beispiel mit Grunzen .
$ grunt karma:dev watch --grep=mypattern
Wenn Sie gulp verwenden (das ist mein Lieblings-Task-Runner), können Sie Argumente mit Yargs an gulp-karma übergeben und Muster abgleichen, indem Sie die Konfiguration von karma festlegen.
Ein bisschen wie das:
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);
Siehe mein Kern: https://gist.github.com/rimian/0f9b88266a0f63696f21
Jetzt kann ich eine einzelne Spezifikation mit der folgenden Beschreibung ausführen:
Mein lokaler Testlauf: (1 von 14 ausgeführt (13 übersprungen))
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
Siehe auch: https://github.com/karma-runner/karma-jasmine