javascript - karma js testing



L'api pubblica Karma non ha l'opzione configFile (1)

Questa domanda è sorprendentemente rilevante e la maggior parte di questi commenti si sofferma sulla vera domanda posta alla fine di questo post: "In che modo grunt-karma sa usare un oggetto config con una proprietà chiamata configFile .

Anch'io mi sono chiesto la stessa cosa che quella proprietà non è elencata da nessuna parte nei documenti di configurazione del karma. Ad esempio, se mi piacerebbe eseguire i miei test di karma tramite l'API pubblica nel mio gulpfile. Sarebbe come questo: ...

var karmaConfig = require('spec/karma.conf.js');
// where my config file exports an object with properties like exclude:, path:
karma.start(karmaConfig)}, process.exit);

Funzionerebbe bene, tranne se volessi esportare la funzione di configurazione in modo da poter usare le costanti di configurazione (descritte qui ):

// allows me to do this

module.exports = function(config) {
    config.set({
        logLevel: config.LOG_INFO
    });
}

Ma non c'è modo di farlo funzionare a meno che non si usi qualcosa del genere:

karma.start({configFile: 'spec/karma.conf.js'}, process.exit);

Dove passo semplicemente in un oggetto con una proprietà configFile che punta al vero file di configurazione.

I documenti Karma non lo menzionano da nessuna parte (come da questo commento), ma è l'unico modo per eseguire il mio test tramite l'API durante l'utilizzo del metodo di esportazione della funzione config.

gulp-karma suggerisce un file di configurazione esterno come questo:

module.exports = {
    basePath: '',
    singleRun: true
};

Voglio un file di configurazione esterno come questo (stile grunt-karma):

module.exports = function(config) {
    config.set({
         basePath: '',
         singleRun: true
    });
};

Come utilizzare il proper config file con l'API Karma.

Dettagli:

Sto usando gulp-karma e, come menzionato qui , devo implementarlo da solo.

L'API Karma è molto semplice:

var server = require('karma').server;
server.start(config, done);

config variabile di config è vaga. È un oggetto semplice con configurazione :

var config = {
    basePath: '',
    singleRun: true
    // ...
}

Diamo un'occhiata al grunt-karma:

Esempio di configurazione grunt-karma:

karma: {
  unit: {
      configFile: 'karma.conf.js'
  }
}

la configurazione di grunt-karma può prendere un'opzione configFile , che non è documentata da nessuna parte .

Posso vedere, posso passare un'opzione configFile dal codice sorgente di karma :

var config = cfg.parseConfig(cliOptions.configFile, cliOptions);

Esiste una documentazione per l'API di Karma che menziona configFile opzione configFile , in che modo grunt-karma sa di usarlo .





gulp