2

レガシー プロジェクトの単体テストを簡素化するために Karma をセットアップしています。問題は、エラーが発生することYou need to include some adapter that implements __karma__.start method!です。私が発見したように、これは非常に具体的なエラーではないため、さらにデバッグする方法がわかりません。セットアップを最小限に減らしましたが、エラーは引き続き発生します。

カルマ設定ファイルは次のとおりです。

module.exports = function (config) {
  config.set({
    browsers: [ 'PhantomJS' ], //run in Phantom
    autoWatch: false,
    singleRun: true, //just run once by default
    frameworks: [ 'mocha', 'chai', 'sinon', 'chai-sinon' ], // test frameworks
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    files: [
      './js/test/tests.webpack.js' //just load this file
    ],
    preprocessors: {
      './js/test/tests.webpack.js': [ 'webpack', 'sourcemap' ] //preprocess with webpack and our sourcemap loader
    },
    reporters: [ 'mocha' ], //report results in this format
    webpack: { // webpack settings
      devtool: 'inline-source-map',
      module: {
        loaders: [
          { test: /\.js$/, loader: 'babel-loader' }
        ]
      }
    },
    webpackServer: {
      noInfo: true
    },
    plugins: [
        'karma-mocha',
        'karma-webpack',
        'karma-sourcemap-loader',
        'karma-mocha-reporter',
        'karma-phantomjs-launcher',
        'karma-chai',
        'karma-sinon',
        'karma-chai-sinon'
    ]
  });
};

これが私がインストールしたパッケージです(package.jsonから):

"babel-core": "^6.9.1",
"babel-loader": "^6.2.4",
"babel-plugin-module-alias": "^1.5.0",
"babel-preset-es2015": "^6.9.0",
"chai": "^3.5.0",
"karma": "^1.0.0",
"karma-chai": "^0.1.0",
"karma-chai-sinon": "^0.1.5",
"karma-chrome-launcher": "^1.0.1",
"karma-mocha": "^1.0.1",
"karma-mocha-reporter": "^2.0.4",
"karma-phantomjs-launcher": "^1.0.1",
"karma-sinon": "^1.0.5",
"karma-sourcemap-loader": "^0.3.7",
"karma-webpack": "^1.7.0",
"mocha": "^2.5.3",
"phantomjs": "^2.1.7",
"phantomjs-polyfill": "0.0.2",
"sinon": "^1.17.4",
"sinon-chai": "^2.8.0",
"webpack": "^1.13.1"

.babelrc は次のとおりです。

{
  "presets": ["es2015"]
}

そして、これが karma.conf.js (tests.webpack.js) で参照しているテスト ファイルです。私の最初のアイデアは、その中のすべての仕様ファイルを要求することでしたが、今では少なくとも 1 つのテストを実行するように変更しました。まだ運がない:

import chai from 'chai';
var expect = chai.expect;

console.log('I was found');
it('works', function () {
    expect(true).to.equal(true);
})

この問題をさらにデバッグする方法を教えてください。

更新:これは、最小限の再現可能なケースの要旨です。私はまだエラーを受け取っているので、そこで何か間違ったことをしているに違いありませんが、You need to include some adapter that implements __karma__.start method!私の間違いが何であるかわかりません。

4

1 に答える 1

3

chai-sinonカルマ構成でへの参照を削除してみてください。それを取り除くと、テストが実行されます。理由を正確に説明することはできませんが、バージョンの非互換性が発生している可能性があります。

于 2016-06-26T22:11:33.213 に答える