Є кілька способів зробити це.
Є: Жасмін особливість фокусованих специфікацій (2.2): http://jasmine.github.io/2.2/focused_specs.html
Якщо фокусувати фокуси, це дозволить зробити їх єдиними. Будь-яка специфікація, оголошена придатною, орієнтована.
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();
});
});
Однак мені не дуже подобається ідея редагування моїх тестів (fit і fdescribe), щоб запускати їх вибірково. Я вважаю за краще використовувати тестовий запуск на зразок карми, який може фільтрувати тести, використовуючи регулярний вираз.
Ось приклад використання грунту .
$ grunt karma:dev watch --grep=mypattern
Якщо ви використовуєте gulp (це мій улюблений виконавець завдань), ви можете передати аргументи в gulp-карму з yargs та шаблонами відповідності, встановивши конфігурацію карми.
Ніби так:
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);
Дивіться мою суть: https://gist.github.com/rimian/0f9b88266a0f63696f21
Тож тепер я можу запустити одну специфікацію, використовуючи опис:
Мій локальний тестовий запуск: (Виконано 1 з 14 (пропущено 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
Також дивіться: https://github.com/karma-runner/karma-jasmine