javascript - Imposta l'opzione di debug nel test Gulp Karma



karma-runner karma-jasmine (1)

Secondo questo post (e Internet generale) se voglio eseguire un test Karma senza questi tipi di comandi di copertura del codice ...

__cov_9C0014nbzu2SxN3FICah6Q.f['35']++;
__cov_9C0014nbzu2SxN3FICah6Q.s['138']++;

... Ho semplicemente bisogno di impostare l'opzione --debug nel terminale in questo modo:

$ karma start karma.conf.js --browsers=Chrome --single-run=false --debug

Tuttavia, durante l'esecuzione dei test Karma tramite un'attività Gulp, la documentazione sembra mancare. Sto usando un semplice oggetto di configurazione karma.start qui sotto. Ho provato a impostare la proprietà debug su true o su strign '--debug' , tuttavia nessuno dei due sembra avere un effetto (anche se i test vengono eseguiti / il runner non si blocca).

karma.start({
    configFile: __dirname + '/karma.conf.js',
    exclude: excludeFiles,
    singleRun: !!singleRun,
    debug: '--debug'
}, karmaCompleted);

Qualche idea su come impostare l'opzione di debug durante l'esecuzione dei test Karma da un'attività Gulp?


Impostazione debug: true nell'oggetto opzioni che passo a karma.start funziona altrettanto bene che usando --debug sulla riga di comando. In altre parole, quello che hai detto che hai fatto nel tuo Gulpfile funziona per ottenere l'opzione di debug su Karma. Però,

Ho semplicemente bisogno di impostare l'opzione --debug nel terminale in questo modo

No, la pagina a cui ti colleghi mostra che devi anche personalizzare la tua configurazione per modificare l'elenco dei preprocessori in modo che quando viene usato --debug l'elenco sia vuoto. Il problema che si presenta è coerente con l'impossibilità di eseguire correttamente questa personalizzazione.

Ecco come è possibile eseguire la personalizzazione. Questo interroga il valore di config.debug dalla configurazione che Karma ha già analizzato dalla riga di comando:

module.exports = function configure(config) {
  config.set({
    // ...
    preprocessors: {
      "index.js": config.debug ? [] : ["coverage"],
    },
    // ...
  });
};

La scansione process.argv per --debug come suggerito nella pagina da cui hai preso l'idea non funzionerà quando invochi Karma da Gulp perché l'opzione di debug viene passata direttamente attraverso la configurazione. Ispezionare config.debug funziona sia da riga di comando che quando Karma viene richiamato tramite la sua API programmatica.





gulp-karma