2015-11-04 14 views
6

いくつかの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+にアップグレードする前に動作していたからです。

乾杯!

答えて

7

あなたのルートディレクトリに.babelrcファイルを追加します。

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

カルマとジャスミンのテストを実行するときにこれは私のエラーを解決: ParseErrorです:「インポート」と「エクスポート」のみが表示される場合があります「たsourceType:Module」を –

関連する問題