Подтвердить что ты не робот

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

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

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

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

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

Можно ли это сделать? Или с любым помощником? (используя grunt или gulp?)

4b9b3361

Ответ 1

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

karma start

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

karma run -- --grep=testDescriptionFilter

Ответ 2

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

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

Ссылки

Ответ 3

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