web-dev-qa-db-ja.com

Karmaでnodejsバックエンドコードをテストする方法(testacular)

Karmaをセットアップして、バックエンドユニットテスト(Mochaで作成)を実行するにはどうすればよいですか?バックエンドテストスクリプトをfiles = []に追加すると、requireが未定義であることを示すのに失敗します。

86
Sylvain

あなたはしません。 Karmaは、ブラウザーベースのコードのテスト専用です。バックエンドでmochaテスト、フロントエンドでkarma/mochaを使用するプロジェクトがある場合は、スクリプトでpackage.jsonを編集して、テストをmocha -R spec && karma run karma.conに設定してみてください

その後、npm testがtrueを返す場合、コミットまたはデプロイしても安全であることがわかります。

81
Dan Kohn

できないようです(@dankohnに感謝)。 Gruntを使用した私のソリューションは次のとおりです。

  • Karma:karma.conf.jsファイルを更新します

    • セットする autoWatch = false;
    • セットする singleRun = true;
    • セットする browsers = ['PhantomJS'];(インライン結果を得るため)
  • グラント:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • 2つのgruntタスクを設定します(以下のgruntファイルを参照)

Gruntfile.js:

module.exports = function (grunt) {
  grunt.loadNpmTasks('grunt-simple-mocha');
  grunt.loadNpmTasks('grunt-karma');

  grunt.initConfig({
    simplemocha: {
      backend: {
        src: 'test/server-tests.js'
      }
    },
    karma: {
      unit: {
        configFile: 'karma.conf.js'
      }
    }
  });

  // Default task.
  grunt.registerTask('default', ['simplemocha', 'karma']);
};
  • Grunt(オプション):specファイルまたはテストするファイルを変更した後に実行されるようにgrunt-watchを構成します。

  • gruntコマンドを使用してすべて実行します。

15
Sylvain