Mam problemy z konfigurowaniem konfiguracji testowej za pomocą aplikacji Karma + Browserify w przypadku niektórych komponentów React. Wzmianka o kodzie jest napisana w ES6 i zaktualizowałem ją do najnowszej wersji Babel (6+), która, jak zakładam, jest źródłem wszelkiego zła w tej konfiguracji.Konfigurowanie programu Karma za pomocą funkcji Browserify w celu przetestowania komponentów React (ES6)
Ponieważ Babel jest teraz podzielony i ma to podejście oparte na wtyczkach (presety), nie jestem pewien, jak powinienem to określić w pliku karma.conf.
Mój obecny config wygląda następująco:
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
});
};
Jednak to nie z błędu Bundle (Nieoczekiwany token podczas parsowania pliku ...). Otrzymuję również komunikat o błędzie You need to include some adapter that implements __karma__.start method!
.
Zabawne, że tak się dzieje w przypadku bardzo prostych elementów.
Np prosty React plik:
import React from 'react';
class FooterComponent extends React.Component {
render() {
return (
<footer>
This is the application's footer
</footer>
);
}
}
export default FooterComponent;
a plik testu nie nawet zaimportować. To tylko zawsze przechodząc testy jak:
describe('Testing `Footer` component.',() => {
describe('Method: none', function() {
it('Should be a passing test', function() {
expect(true).toBe(true);
});
});
});
Babel/Browserify związanych pakietów w package.json
są:
{
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"babelify": "^7.2.0",
"browserify": "^12.0.1",
}
Wszelkie pomysły są mile widziane. Zwłaszcza, że działało to przed aktualizacją do Babel 6+.
Pozdrawiam!
to rozwiązać mój błąd podczas uruchamiania testów karmy i jaśminu: ParseError: „przywóz” i „wywóz” może pojawić się tylko z „sourceType: moduł” –