web-dev-qa-db-ja.com

grunt testが機能するように、generator-angularプロジェクトを修正するにはどうすればよいですか?

私はこのチュートリアルに取り組んでいます: http://www.sitepoint.com/kickstart-your-angularjs-development-with-yeoman-grunt-and-bower/ どのファイルを理解する手段としてyogenerator-angularを使用して作成されます。

私はAngularJSの使用経験がありますが、ベストプラクティスのディレクトリを設定する方法を探していました。依存関係を設定してカルマを自分で実行する方法がわからないため、yeomanジェネレーターを使用します。

ただし、何も編集せずに箱から出してすぐに、grunt testを実行すると、次のようになります。

running "clean:server" (clean) task
Cleaning .tmp...OK

Running "concurrent:test" (concurrent) task

Running "copy:styles" (copy) task
Copied 1 files

Done, without errors

Running "autoprefixer:dist" (autoprefixer) task
Prefixed file ".tmp/styles/main.css" created.

Running "connect:test" (connect) task
Started connect web server on 127.0..0.1:9001.

Running "karma:unit" (karma) task
Warning: No provider for "framework:jasmine"! (resolving: framework:jasmine) Use --force to continue.

Aborted due to warnings.

ジャスミンにプロバイダーがない理由がわかりません。また、この問題を解決する方法もわかりません。 package.jsonファイルを修正してノードを更新するだけですか?

編集:これが設定ファイルです:

// Karma configuration
// http://karma-runner.github.io/0.10/config/configuration-file.html

module.exports = function(config) {
  config.set({
    // base path, that will be used to resolve files and exclude
    basePath: '',

    // testing framework to use (jasmine/mocha/qunit/...)
    frameworks:['jasmine'],

    // list of files / patterns to load in the browser
    files: [
      'app/bower_components/angular/angular.js',
      'app/bower_components/angular-mocks/angular-mocks.js',
      'app/bower_components/angular-resource/angular-resource.js',
      'app/scripts/*.js',
      'app/scripts/**/*.js',
      'test/mock/**/*.js',
      'test/spec/**/*.js'
    ],

    // list of files / patterns to exclude
    exclude: [],

    // web server port
    port: 8080,

    // level of logging
    // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
    logLevel: config.LOG_INFO,


    // enable / disable watching file and executing tests whenever any file changes
    autoWatch: false,


    // Start these browsers, currently available:
    // - Chrome
    // - ChromeCanary
    // - Firefox
    // - Opera
    // - Safari (only Mac)
    // - PhantomJS
    // - IE (only Windows)
    browsers: ['Chrome'],


    // Continuous Integration mode
    // if true, it capture browsers, run tests and exit
    singleRun: false
  });

};

31
user2464083

同様の問題を抱えている人のために、私は私の問題を修正したようです:

私のkarma.conf.js内に、以下を追加しました。

plugins: [
    'karma-chrome-launcher',
    'karma-jasmine'
    ],

最初は「カルマジャスミン」を追加しましたが、「「Chrome」を読み込めません、登録されていません!」と出会った。これは、プラグインとして「karma-chrome-launcher」を追加することで解決されました

それが私のせいなのか、generator-angularが古くなっているのかはわかりませんが、現在は機能しています。

54
user2464083

@Jim Schubertによって指摘されたgithubの問題には、次のコメントがあります。

テストを機能させるためにインストールする必要のあるカルマ依存関係の完全なリスト(coffeescript)。

npm install --save-dev karma-chrome-launcher karma-firefox-launcher karma-safari-launcher karma-opera-launcher karma-ie-launcher karma-jasmine karma-coffee-preprocessor
10
pherris

--coffeeコマンドでyo angularフラグを使用した場合は、次のことを行う必要があります。

いくつかのブラウザランチャー(この場合はchrome)と次のnpmパッケージをインストールします。

npm install --save-dev karma-chrome-launcher karma-jasmine karma-coffee-preprocessor

karma.conf.jsファイルに以下を追加します。

plugins:['karma-chrome-launcher', 'karma-jasmine', 'karma-coffee-preprocessor'],
preprocessors:{'**/*.coffee':['coffee']}

その後、grunt testを実行すると機能するはずです。

2