テストのコード カバレッジに関するレポートを取得するために、前処理を有効にしてkarma.conf.jsを構成しました。この行をプリプロセッサセクションに追加しました。
preprocessors: {
'public/js/app.js': ['coverage'],
'public/js/filters.js': ['coverage'],
'public/js/directives.js': ['coverage'],
'public/js/services/*.js': ['coverage'],
'public/js/controllers/*.js': ['coverage'],
},
私が得たのは、まったく間違った報告です。各モジュールとその中の関数のテストを書いたことは知っています。しかし、カバレッジ レポートには、サービスのテストのみが正しく表示されます。
たとえば、ディレクティブのテスト。私はいくつかのテストを書き、そのテストも実行されることを知っています。しかしレポートによると、コード行の 36% をテストしただけです。
この奇妙な動作の理由は何でしょうか?
アップデート:
仕様レポーターからの次の出力が表示されます。
Directives:
bsTooltip:
when the element was created:
PASSED - should call the popup function
bsSwitchtext:
when the model isBusy changes to true:
PASSED - should call the button method with loading
when the model isBusy changes to false changes:
PASSED - should call the button method with loading
それで、私のテストはすべて実行されると思います。