いくつかのReactコンポーネントに対してKarma + Browserifyでテスト設定を設定する際に問題があります。言及するコードはES6で書かれています。私は最新のBabelバージョン(6+)にアップグレードしました。これはこの設定のすべての悪の根源です。カルマをBrowserifyで設定してReact(ES6)コンポーネントをテストする
Babelは現在分割されており、このプラグインベースのアプローチ(プリセット)を使用していますので、karma.confファイルでこれを指定する方法がわかりません。
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
});
};
しかし、これはバンドルのエラーで失敗する(ファイルの解析中に予期しないトークン...):
私の現在の設定は次のようになります。また、You need to include some adapter that implements __karma__.start method!
エラーメッセージが表示されます。
非常に単純なコンポーネントではこれが起こるのは面白いです。
Egが、単純なファイルリアクト:
import React from 'react';
class FooterComponent extends React.Component {
render() {
return (
<footer>
This is the application's footer
</footer>
);
}
}
export default FooterComponent;
をし、テストファイルであっても、それをインポートしません。 package.json
で
describe('Testing `Footer` component.',() => {
describe('Method: none', function() {
it('Should be a passing test', function() {
expect(true).toBe(true);
});
});
});
バベル/ Browserify関連パッケージです:それは次のようにちょうど常に渡すテストだ
{
"babel-preset-es2015": "^6.0.15",
"babel-preset-react": "^6.0.15",
"babelify": "^7.2.0",
"browserify": "^12.0.1",
}
任意のアイデアが高く評価されています。特にこれはBabel 6+にアップグレードする前に動作していたからです。
乾杯!
カルマとジャスミンのテストを実行するときにこれは私のエラーを解決: ParseErrorです:「インポート」と「エクスポート」のみが表示される場合があります「たsourceType:Module」を –