it-swarm.com.ru

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

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

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

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

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

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

83
Gonçalo Vieira

Сначала нужно запустить сервер кармы с

karma start

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

karma run -- --grep=testDescriptionFilter
51
bvaughn

Даже если --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
14
Yuriy Kharchenko

Эта опция больше не поддерживается в последних версиях кармы:

см 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\"\)

ссылки

6
Paul Sweatte