0

karma + mocha + should を設定しようとしていますが、テストで should が定義されていないため、何か不足しているに違いありません。

プラグインのドキュメント によると、従うべき唯一の手順は次のとおりです。

1.- フレームワークに should を追加し、カルマ構成のプラグイン キーに karma-should を追加します。

module.exports = function(config) {
  config.set({
    frameworks: ['mocha', 'should'],
    plugins: ['karma-should']
  });
};

すべてのはずのアサーションがテストで利用可能です

これは私の設定です:

パッケージ.json

"devDependencies": {
    "karma": "^0.13.3",
    "karma-chrome-launcher": "^0.2.0",
    "karma-firefox-launcher": "^0.1.6",
    "karma-mocha": "^0.2.0",
    "karma-phantomjs-launcher": "^0.2.0",
    "karma-requirejs": "^0.2.2",
    "karma-should": "0.0.1",
    "mocha": "^2.2.5",
    "should": "^7.0.2",
  }

カルマ.conf.js

config.set({

    // base path that will be used to resolve all patterns (eg. files, exclude)
    basePath: '',


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['mocha', 'should'],

    plugins: ['karma-mocha',
              'karma-should',
              'karma-chrome-launcher',
              'karma-firefox-launcher'],

simpleTest.js

describe('theAnswer()', function() {
  it('should be 42', function() {
    theAnswer().should.be.exactly(42);
  });
});


function theAnswer() {
  return 42;
}

実行すると、次のようkarma startになります。

Firefox 39.0.0 (Windows 7 0.0.0) theAnswer() should be 42 FAILED
    theAnswer(...).should is undefined

理由はわかりますか??

4

1 に答える 1

1

should 7.xx でパッケージが変更されたため、プラグインの実装に問題があるようです。

これについてはオープン プル リクエストがあります: https://github.com/seegno/karma-should/pull/1

現在のプラグイン バージョン (0.0.1) は 6.xx まで動作します。

編集:最新の karma-should プラグイン リリース (1.0.0) では、この問題が修正されています。

于 2015-07-23T12:32:46.963 に答える