ジャスミンを単独で使用したときに得られるような、カルマで実行されたすべての成功したジャスミン スペックのレポートを取得したいと考えています。
これを達成する方法はありますか?
ジャスミンを単独で使用したときに得られるような、カルマで実行されたすべての成功したジャスミン スペックのレポートを取得したいと考えています。
これを達成する方法はありますか?
私が書いたこの簡単なプラグインを試してください:
はい、しかしそれは自明ではありません--auto-watch
。したがって、基本的にはありません :-( lib/reporters/Progress.jsのせいにしてください。これは、成功したテスト結果を飲み込み、各ブラウザーの要約行を吐き出します。
ただし、決定した場合は、( v0.9.2で)「十分に良い」結果を得る (少なくとも) 2 つの重要な方法があります (そのうちの 1 つを行う場合は、磨き上げて次のように提出する必要があります)。プルリクエスト :-))
ほとんどのテスト フレームワークと同様に、Karma を使用して結果をjUnit XML 形式で出力し、後処理することができます...
デフォルトでkarma start --reporters=junit
は、 は jUnit レポートを に書き込み${basePath}/test-results.xml
ますが、構成アイテムでこれをオーバーライドできますjunitReporter.outputFile
。
コマンドラインで jUnit の出力を他のレポーター (grow など) と組み合わせることができることに注意してください。karma start --reporters=junit,growl
私はいつも自分の愚かなgrep/sed/perl/etcを転がしてしまいました。このような場合はパイプラインを使用しますが、xmlstarletはこの仕事に最適です。例えば、
$ cat test-runner.xml \
| xml sel -t -m "//testcase" -v @classname -o " " -v @name -nl
収量(私のプロジェクトの1つ):
Chrome 27.0 (Linux).Globalization API: _g11n exists
Chrome 27.0 (Linux).Globalization API: _g11n has been initialized
Chrome 27.0 (Linux).Globalization API: _g11n _locales exists
Chrome 27.0 (Linux).Globalization API: _g11n _locales has been initialized
Chrome 27.0 (Linux).Globalization API: _g11n _locales has a current locale (matching the default)
Chrome 27.0 (Linux).Globalization API: _g11n _locales registry allows lookup by full code
Chrome 27.0 (Linux).Globalization API: _g11n _locales registry allows lookup by locale object
Chrome 27.0 (Linux).Globalization API: _g11n _locales registry fails
Chrome 27.0 (Linux).Globalization controllers hkmLocaleCtrl should have the locales database
やる気がある場合は、既存のレポーター ( 、lib/reporters/Progress.js
など) をサブクラス化し、およびメソッドをlib/reporters/Base.js
オーバーライドして、各テストの詳細をレポートします。レポーターを使用するためのカルマの取得は、読者の演習として残されています :-).specSuccess
.onBrowserComplete
ところで: オプション 2 を選択した場合は、プルリクエストを開いてカルマに入れるようにしてください :-)
個々のテスト ケースを表示するために、次のコードを使用します (基本的な単体テスト プロジェクトを最初から作成します)。
npm install karma karma-jasmine karma-phantomjs-launcher karma-spec-reporter
touch main.js main.spec.js
karma init
次に、次の質問を選択します。
Which testing framework do you want to use ?
> jasmine
Do you want to capture any browsers automatically ?
> PhantomJS
>
What is the location of your source and test files ?
> *.js
Do you want Karma to watch all the files and run the tests on change ?
> yes
プロジェクト フォルダーのkarma.conf.jsを編集し、
交換:
レポーター: [「進行中」]
と:
レポーター: ['spec']
走る
karma start
これで、単体テストを main.spec.js に記述する準備が整いました。
describe('suite', function () {
it('expectation', function () {
expect(true).toBeTruthy();
});
});
保存...すると、ターミナルに次のように表示されます。
INFO [watcher]: Changed file"/main.spec.js".
true
✓ should be true
PhantomJS 1.9.8 (Mac OS X): Executed 1 of 1 SUCCESS (0.001 secs / 0 secs)
.html コード カバレッジ レポートを作成する karma-coverage があります。カルマ設定に統合するのは簡単です。
https://github.com/karma-runner/karma-coverage
npm install karma-coverage --save-dev
karma.conf.js に追加します。
// karma.conf.js
module.exports = function(config) {
config.set({
files: [
'src/**/*.js',
'test/**/*.js'
],
// coverage reporter generates the coverage
reporters: ['progress', 'coverage'],
preprocessors: {
// source files, that you wanna generate coverage for
// do not include tests or libraries
// (these files will be instrumented by Istanbul)
'src/*.js': ['coverage']
},
// optionally, configure the reporter
coverageReporter: {
type : 'html',
dir : 'coverage/'
}
});
};