2016-09-05 7 views
11

私は数日間、単体テストを成功させようとしています。私のアプリケーションはtypescriptで書かれています(ユニットテストはtypescriptでも書かれています)。私はkarma startを実行すると、私は次のエラーを取得するSystemJS + Karma + TypeScript - テストを実行していません

module.exports = function (config) { 
    config.set({ 

    basePath: "../../../../", 

    frameworks: [ 
     "jasmine", 
     "systemjs" 
    ], 

    browsers: ['PhantomJS'], 

    singleRun: true, 
    reporters: ['progress'], 

    systemjs: { 
     config: { 
     paths: { 
      systemjs: "src/main/webapp/static/js/engage/lib/bower/system.js/dist/system.src.js", 
      typescript: "build/node_modules/typescript/lib/typescript.js" 
     }, 
     transpiler: "typescript" 
     }, 

     // testFileSuffix: ".spec.ts" 
    }, 

    files: [ 
     'src/main/webapp/static/js/engage/dist/vendor/vendor.min.js', 
     'src/main/webapp/static/js/engage/lib/bower/system.js/dist/system-polyfills.src.js', 
     'src/main/webapp/static/js/engage/lib/bower/angular-mocks/angular-mocks.js', 
     {pattern: "src/main/webapp/static/js/engage/app/**/*.spec.ts", served: true, included: false} 
    ] 
    }); 
}; 

05 09 2016 21:39:45.543:INFO [karma]: Karma v1.2.0 server started at http://localhost:9876/ 
05 09 2016 21:39:45.546:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency 
05 09 2016 21:39:45.558:INFO [launcher]: Starting browser PhantomJS 
05 09 2016 21:39:47.631:INFO [PhantomJS 1.9.8 (Mac OS X 0.0.0)]: Connected on socket /#c-ZoxCczyYymPDAtAAAA with id 8911412 
05 09 2016 21:39:47.650:WARN [web-server]: 404: /base/src/main/webapp/static/js/engage/lib/bower/system.js/dist/system-polyfills.js 
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR 
    You need to include some adapter that implements __karma__.start method! 

私はChromeにブラウザのプロパティを変更すると、私は次のエラーを取得:

をここに は私のカルマの設定ファイルであります
Chrome 52.0.2743 (Mac OS X 10.11.6) ERROR 
    Error: ReferenceError: jasmineRequire is not defined 
      at eval (build/node_modules/karma-jasmine/lib/boot.js:14:32) 
      at eval (build/node_modules/karma-jasmine/lib/boot.js:41:2) 
     Evaluating build/node_modules/karma-jasmine/lib/boot.js 
     Error loading build/node_modules/karma-jasmine/lib/boot.js 

ここに私のpackage.json関連の依存関係があります:

"phantomjs": "^1.9.11", 
"karma-systemjs": "^0.14.0", 
"karma-jasmine": "^1.0.2", 
"karma-chrome-launcher": "^0.1.5", 
"jasmine-core": "^2.5.0" 

ご協力いただければ幸いです!最新のバージョンに依存関係を

plugins: [ 
    'karma-jasmine', 
    'karma-chrome-launcher' 
], 

使用カルマの設定に最後のNode.js 6.5をプラグインオプションを追加して更新する

+0

FWIW karma-systemjsの代わりにkarma-jspmを使用することを検討したいと思っています。ここでは、うまくいけば、うまく動作している例のrepoへのリンクがあります。http://stackoverflow.com/questions/39028639/karma-jspm-typescript-not-found- ts-js – artem

+0

@artem、私はリポジトリへのリンクを見つけることができません – vlio20

+0

https://github.com/Larchy/karma-jspm-typescript-coverage/tree/master – artem

答えて

3
  1. 私が最初のようにsystemjsを含めるようにしようとするだろうフレームワークは文書に書かれています
  2. typescriptをsystemjsでロードする前にコンパイルし、systemjs typescriptコンパイルは使用しないでください。それはあなたのカルマテストの複雑さを減少させ、より強固にします。
  3. スペックファイルにtrueを含むように変更すると、いくつかの問題が解決しました。しかし、私はこのALSはちょうどトラブル
  4. それは404エラーがスローされますようごsystem.jsへのパスを確認してください

システムのための私の構成を作るよう

  • そのことについては./であなたのbasePathをを残してわからないんだけど.jsこの

    systemjs: { 
        configFile: 'dev/systemjs.config.js', 
        config: { 
         map: { 
          'systemjs':   'node_modules/systemjs/dist/system.js', 
          'system-polyfills': 'node_modules/systemjs/dist/system-polyfills.js', 
          'es6-module-loader': 'node_modules/es6-module-loader/dist/es6-module-loader.js' 
         } 
        } 
    } 
    

    のように見えるかもしれないも、この質問から、構成スニペットの一部は役立つかもしれない:あなたの場合 Angular 2 + Karma + karma-jspm + karma-coverage + typescript report phantomJS failure

    +0

    あなたのカルマを見せてください設定ファイルも? – vlio20

    +0

    他のスレッドには私の答えがあります:http://stackoverflow.com/a/38979652/1512530 – DaSch

    +0

    使用しているnmpモジュールを指定してください。私はカバレッジモジュールを持つ必要はありませんので、何が関係ありませんか? – vlio20

    関連する問題