0

ng-boilerplate私は Github からアプリをダウンロードしました。AngularJS とテストについて学ぶのに役立つように、このアプリを使用しています。

私が最初にしたことの 1 つは、カルマ テストの仕組みを学ぶことでした。そこで、Karma フォルダー内でコマンド プロンプトを開き、次のように入力しました。

karma start karma-unit.tpl.js

完璧なテスト結果が返されることを期待しています (コードには触れていないため)。ただし、代わりに、次のエラーが発生します。

C:\Users\Imray\stuff\Angular JS\ng-boilerplate\karma\karma-unit.tpl.js:12
      <% scripts.forEach( function ( file ) { %>'<%= file %>',
      ^
ERROR [config]: Invalid config file!
  SyntaxError: Unexpected token <
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.parseConfig (C:\Users\Imray\stuff\Angular JS\ng-boilerplate\node_modules\karma\lib\config.js:250:22)
    at Object.exports.start (C:\Users\Imray\stuff\Angular JS\ng-boilerplate\node_modules\karma\lib\server.js:286:20)
    at Object.exports.run (C:\Users\Imray\stuff\Angular JS\ng-boilerplate\node_modules\karma\lib\cli.js:229:25)
    at requireCliAndRun (C:\Users\Imray\AppData\Roaming\npm\node_modules\karma-cli\bin\karma:24:16)

なぜこうなった?私は何を間違っていますか?

4

2 に答える 2

0

karma start karma-unit.tpl.jsうーん、確かではありませんが、未処理の文字列があるため、を実行する前に Grunt タスクを実行する必要があるかもしれません。

<% scripts.forEach( function ( file ) { %>'<%= file %>',有効な JavaScript のようには見えませんが、ビルド文字列に似ています

この回答を確認してください

于 2015-01-11T15:22:41.223 に答える
0

karmaconfig タスクがありません:

/**
 * In order to avoid having to specify manually the files needed for karma to
 * run, we use grunt to manage the list for us. The `karma/*` files are
 * compiled as grunt templates for use by Karma. Yay!
 */
grunt.registerMultiTask( 'karmaconfig', 'Process karma config templates', function () {
var jsFiles = filterForJS( this.filesSrc );

grunt.file.copy( 'karma/karma-unit.tpl.js', grunt.config( 'build_location' ) + '/karma-unit.js', {
    process: function ( contents, path ) {
        return grunt.template.process( contents, {
            data: {
                scripts: jsFiles
            }
        });
    }
});

});

または、単純に削除したか、カルマ タスクの前に追加するのを忘れました。

grunt.registerTask( 'build', [
        'clean', 'html2js', 'jshint:source', 'jshint:test', 'karmaconfig',
        'karma:continuous', 'karma:coverage'
    ]);

(見やすくするためにいくつかのタスクを削除しました。karmaconfig タスクも filterForJs 関数に依存しています。しかし、これはすべて ng-boilerplate に含まれているため、ここでは明示的に追加しませんでした)

于 2015-07-08T11:50:17.427 に答える