カルマで実行されたすべての成功したジャスミン仕様のレポートを取得したいと思います。これは、ジャスミンを単独で使用した場合に得られるようなものです。
とにかくこれを達成する方法はありますか?
私が書いたこの簡単なプラグインを試してください:
はい、しかしそれは簡単なことではありませんし、_--auto-watch
_が必要な場合はなおさらです。したがって、基本的には、: Blame it on ---(lib/reporters/Progress.js のせいではありません。これにより、成功したテスト結果が飲み込まれ、各ブラウザーの要約行が出力されます。
ただし、決定した場合、(少なくとも)2つの重要な方法があります(v0.9.2)。 「十分な」結果を得る方法(そのうちの1つを行う場合は、磨いてプルリクエストとして送信する必要があります:-))
ほとんどのテストフレームワークと同様に、Karmaに結果を jUnit XML形式 で出力して、後処理することができます...
デフォルトでは、_karma start --reporters=junit
_はjUnitレポートを_${basePath}/test-results.xml
_に書き込みますが、これを_junitReporter.outputFile
_構成アイテムでオーバーライドできます。
コマンドラインでjUnit出力を他のレポーター(うなり声など)と組み合わせることができることに注意してください:例:_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)