2015-11-04 15 views
6

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!

risposta

7

Aggiungere un file .babelrc alla directory root:

{ 
    presets: ['es2015', 'react'] 
} 
+0

Questo risolto il mio errore durante l'esecuzione test di karma e gelsomino: parseError: 'import' e 'esportazione' può apparire solo con 'sourceType: modulo' –

Problemi correlati