1

mocha/chai で記述された JS テストがいくつかあり、webapp ジェネレーターを使用してスキャフォールディングされたプロジェクトでそれらを実行したいと考えています。

Yeoman の構造の "test" フォルダー内にテストを配置しましたが、テストは正常に実行されています。ただし、問題は、grunt testコマンドがブラウザーではなくコンソールにテスト結果を表示するだけであることです。

コマンドを実行して、ブラウザにテストを表示する方法を探しています。どうやってやるの?

助けてくれてありがとう!

4

1 に答える 1

1

の構成のこの部分を考慮してくださいconnect(より正確には、これは のサブタスクですconnect):

test    : {
  options : {
    middleware : function(connect) {
      return [
        require('connect-livereload')(),
        mountFolder(connect, '.tmp'),
        mountFolder(connect, 'test')
      ];
    },
    port       : grunt.option('port') ? Number(grunt.option('port')) + 1 : 9001
  }
}

上記は、指定されたフォルダーのファイルを http 経由で利用できるようにします。

  • .tmp私のトランスパイルされたコーヒースクリプトとSCSSが通常のJS / CSSとして着陸する場所です
  • test私のテストが、index.htmlすべての JS/CSS を一緒に接続する非常に単純なファイルmocha.jsと共に存在する場所です。mocha.css

後で Gruntfile にtestタスクを登録します。

grunt.registerTask('test', function(target) {
  var tasks = [
    'clean:server',
    'coffee',
    'jst',
    'connect:test'
  ];

  if (target === 'browser') {
    tasks.push('open:test');
    tasks.push('watch');
  } else {
    tasks.push('mocha');
  }

  grunt.task.run(tasks);
});

問題に関連する部分は'connect:test'、ブラウザを介してテストにアクセスできるようにする部分です。これは次のとおりです。

  if (target === 'browser') {
    tasks.push('open:test');
    tasks.push('watch');
  } else {
    tasks.push('mocha');
  }

browserターゲットとして指定しない限りtest、テストはコンソールでヘッドレスで実行されます。しかし、あなたが好きならgrunt test:browser、Grunt は のおかげでブラウザを開きopen:testます。参考までに、私のopen:test設定も含めます。

test   : {
  path : 'http://localhost:<%= connect.test.options.port %>'
}
于 2014-03-25T13:30:40.917 に答える