Karma: запуск одного тестового файла из командной строки


Итак, я искал, нашел "похожие" ответы здесь, но не совсем то, что я хочу.

прямо сейчас, если я хочу проверить один файл с кармой, мне нужно сделать fit(),fdescribe() в рассматриваемом файле...

однако то, что я хочу, это иметь возможность просто вызвать karma, с файлом конфигурации, и направить его в определенный файл, поэтому мне не нужно изменять файл вообще, т. е.:

karma run --conf karma.conf.js --file /path/to/specific/test_file.js

можно ли это сделать? Или с помощью любой помощник? (используя ворчание или глоток?)

3 72

3 ответа:

сначала вам нужно запустить Karma server с

karma start

затем вы можете использовать grep для фильтрации конкретного теста или описания блока:

karma run -- --grep=testDescriptionFilter

хотя --files больше не поддерживается, вы можете использовать переменную env для предоставления списка файлов:

// karma.conf.js
function getSpecs(specList) {
  if (specList) {
    return specList.split(',')
  } else {
    return ['**/*_spec.js'] // whatever your default glob is
  }
}

module.exports = function(config) {
  config.set({
    //...
    files: ['app.js'].concat(getSpecs(process.env.KARMA_SPECS))
  });
});

затем в CLI:

$ env KARMA_SPECS="spec1.js,spec2.js" karma start karma.conf.js --single-run

эта опция больше не поддерживается в последних версиях karma:

см.https://github.com/karma-runner/karma/issues/1731#issuecomment-174227054

массив файлов может быть переопределен с помощью CLI как таковой:

karma start --files=Array("test/Spec/services/myServiceSpec.js")

или сбежал:

karma start --files=Array\(\"test/Spec/services/myServiceSpec.js\"\)

ссылки