Ho problemi a configurare una configurazione di prova con Karma + Browserify per alcuni componenti React. Il codice di citazione è scritto in ES6 e ho aggiornato alla versione Babel più recente (6+), che presumo sia la radice di tutto il male in questa configurazione.Impostazione di Karma con Browserify per testare i componenti React (ES6)
Poiché Babel è ora diviso e ha questo approccio basato su plugin (preset), non sono sicuro di come dovrei specificarlo nel file karma.conf.
mio config corrente si presenta così:
module.exports = function(config) {
config.set({
basePath: '',
browsers: ['PhantomJS'],
frameworks: ['browserify', 'jasmine'],
files: [
'app/js/**/*',
'app/__tests__/**/*'
],
preprocessors: {
'app/js/**/*': ['browserify'],
'app/__tests__/**/*': ['browserify']
},
browserify: {
debug: true,
transform: ['babelify']
},
singleRun: true
});
};
Tuttavia, questo non riesce con un errore di fascio (token imprevisto durante l'analisi di file ...). Inoltre ricevo il messaggio di errore You need to include some adapter that implements __karma__.start method!
.
È divertente che questo accada per alcuni componenti molto semplici.
esempio semplice file React:
import React from 'react';
class FooterComponent extends React.Component {
render() {
return (
<footer>
This is the application's footer
</footer>
);
}
}
export default FooterComponent;
E il file di test non ha nemmeno importarlo. E 'solo un test sempre di passaggio come:
describe('Testing `Footer` component.',() => {
describe('Method: none', function() {
it('Should be a passing test', function() {
expect(true).toBe(true);
});
});
});
Il Babel/Browserify pacchetti relativi a package.json
sono:
{
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"babelify": "^7.2.0",
"browserify": "^12.0.1",
}
Tutte le idee sono apprezzati. Soprattutto dal momento che questo funzionava prima di passare a Babel 6+.
Cheers!
Questo risolto il mio errore durante l'esecuzione test di karma e gelsomino: parseError: 'import' e 'esportazione' può apparire solo con 'sourceType: modulo' –