私はかなり単純なkarma.config.jsファイルを持っています
basePath = '../';
files = [
JASMINE,
JASMINE_ADAPTER,
'js/lib/angular*.js',
'test/lib/angular/angular-mocks.js',
'js/**/*.js',
'test/unit/**/*.js'
];
autoWatch = true;
browsers = ['PhantomJS'];
実行時karma start config/karma.conf.js --single-run
私は次の出力を得ています
$ karma start config/karma.conf.js --single-run
[2013-06-24 23:47:08.750] [DEBUG] config - autoWatch set to false, because of singleRun
INFO [karma]: Karma server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
INFO [PhantomJS 1.9 (Mac)]: Connected on socket id LwMoWxzIbSUuBsvIqB_m
PhantomJS 1.9 (Mac): Executed 6 of 6 SUCCESS (0.073 secs / 0.02 secs)
ログに記録されるテストの出力を取得する方法を教えてくれるものを探しています(例:SUCCESS Unit: services myService should behave
)
テストの出力を確認できる唯一の方法は、Chromeを開いて[デバッグ]をクリックし、開発者ツールコンソールを表示することです。端末にメッセージをログアウトしたいのですが、私はこれを機能させる方法を理解できません。
karma-spec-reporter をインストールすることにより修正
npm install karma-spec-reporter --save-dev
これを私のkarma.config.jsに追加します
reporters: ['spec'],
karma documentation によると
デフォルトでは、カルマはそれに兄弟であるすべてのNPMモジュールをロードし、その名前はkarma- *と一致します。
しかし、一部のユーザーは次の設定を追加する必要がありました
plugins: ['karma-spec-reporter']
Karma-mocha-reporter をレポーターとして使用することもでき、コンソールにクリーンなレポートが表示されます。
npm i karma-mocha-reporter --save-dev
// karma.conf.js
module.exports = function(config) {
config.set({
frameworks: ['jasmine'],
// reporters configuration
reporters: ['mocha']
});
};
時々、例えば@angular/cli
次のような環境が必要です。
plugins: [
...
require('karma-mocha-reporter'),
...
]
ちょうど別の詳細-以下のようにkarma.config.jsでデフォルトのレポーター 'progress'を保持する場合:
reporters: ["progress", "spec"]
または別のコンソールレポーターの場合、「spec」レポーターの出力は機能しません。
「spec」のみを保持するか、他のブラウザレポーターと「spec」を保持する必要があります。例えば:
reporters: ["spec", "coverage"]
セクション「プラグイン」のない私の作業(ドラフト)構成です(実際、それらを指定する必要がある理由を完全には理解していません...):
package.json
_ "devDependencies": {
[...]
"grunt-karma": "~0.9.0",
"karma": "~0.12.24",
"karma-jasmine": "~0.2.3",
"karma-chrome-launcher": "~0.1.5",
"karma-phantomjs-launcher": "~0.1.4",
"karma-spec-reporter": "0.0.13"
}
_
karma.conf.js
_module.exports = function (config) {
config.set({
frameworks: ['jasmine'],
reporters: ['spec'],
browsers: ['PhantomJS']
});
};
_
Gruntfile.js
_ karma: {
options: {
configFile: 'karma.conf.js',
files: [
'app/libs/angular.js',
'app/libs/angular-resource.js',
'app/libs/angular-route.js',
[...]
'app/modules/**/*-spec.js'
]
},
unit: {
singleRun: true
}
}
_
これで、_grunt karma
_ファイル(describe('message', function() ...)
)から_*-spec.js
_メッセージを実行すると、コンソールにうまく表示されます。
出力を読みやすくするためにレポーターを作成しました:karma-helpful-reporter
いくつかの素晴らしいカスタマイズオプションがあります: https://github.com/whyboris/karma-helpful-reporter
基本的にnpm install --save-dev karma-helpful-reporter
を内部にインストールし、Karma設定プラグインセクションに追加します:
plugins: [
require('karma-helpful-reporter')
],
reporters: [ 'helpful' ],