問題タブ [istanbul]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - カルマ カバレッジの解析 | イスタンブールレポート
Karma-coverage を介してコード カバレッジ レポートを生成する JavaScript ファイルがあります。私の理解では、Karma-coverage はイスタンブール経由でレポートを生成します。この時点で、イスタンブールは、html レポートと .json ファイルの 2 つの重要なファイルを生成します。
HTML レポートには、ステートメント カバレッジ、分岐カバレッジ、関数カバレッジ、および行カバレッジに関するパーセンテージがあります。HTML レポートのサンプルは、http: //gotwarlost.github.io/istanbul/public/coverage/lcov-report/index.htmlで見ることができます。
.json ファイルは、coverage.json というファイルに生成されます。coverage.json ファイルのサンプルは、http: //gotwarlost.github.io/istanbul/public/coverage/coverage.jsonで確認できます。
私の人生では、HTML レポートがステートメント、カバレッジ、ブランチ、および関数のカバレッジのパーセンテージを .json ファイルから取得する方法を理解できません。ただし、.json ファイルからステートメント、カバレッジ、ブランチ、および関数のカバレッジのパーセンテージを取得する必要があります。
.json ファイルとは何かを誤解していますか? .json ファイルに要約があるだけではありませんか?
javascript - イスタンブール: mocha を使用してコード cobertura レポートを生成する
モカ テストを実行しているイスタンブールで cobertura レポートを生成できません。
cobertura-coverage.xml のレポートが空です。
レポート オプション ( istanbul cover _mocha test) なしで実行すると、すべて正常に動作し、コンソールにカバレッジの概要が表示されます。
私が間違っていることはありますか?
node.js - イスタンブールでのノード JS テスト カバレッジの問題
「Istanbul cover test.js」を使用していくつかのノード js 単体テストを実行しています。ここで、test.js は、コードベースで実際のスクリプトを呼び出すマスター テスト ファイルです。問題は、それが生成するカバレッジ レポートが test.js ファイルのみであり、コードベースの実際のコード行ではないことです。これがばかげた質問である場合は申し訳ありませんが、テストが参照する実際のファイルのカバレッジを表示するにはどうすればよいですか?
typescript - 複数の __extends 宣言の Typescript コード カバレッジ
私のコードをコンパイルすると、TypeScript はすべてのファイルの先頭に __extends 宣言を含めます。
これは舞台裏では問題なく機能しますが、カルマ カバレッジなどを使用してレポートを生成する場合、矛盾が生じます。この宣言には、2 つの関数呼び出しとコード内の分岐 (|| の使用法) が含まれており、これらは最初の宣言でのみ実行され、その後の数十 (数百とは言わないまでも) の宣言はカバーされません。これにより、コード カバレッジが 100% であるファイルが、カバレッジ レポートでまったくカバーされていないように見えます。
誰かがこの問題を解決しましたか?
javascript - Instanbul がカバレッジ レポートの HTML ファイルを間違ったディレクトリにダンプし続ける
これが私の設定ファイルです:
実行するたびにkarma start config/karma.config.js単体テストが実行coverageされ、正しい場所にフォルダーが作成されます。ただし、topic.js と同じディレクトリに topic.js.html ファイルをダンプします。なんで?
node.js - grunt.registerTask にイスタンブールオプションを指定する方法
次のように、イスタンブールを実行して、モカ テストケースのカバレッジに関するレポートを取得できます。
ここで、これを Gruntfile.js の一部として追加して、カバレッジが特定の割合を下回った場合にビルドを失敗させることができるようにします。
そこで、grunt-istanbul-coverageをインストールし、Gruntfile.js に以下を追加しました。
grunt codecoverageを実行すると、最上位のテストに対してのみ実行されます。で実行することを指定する方法と場所はmocha -- -R spec test/**/*_test.js?
javascript - イベント コールバックのコード カバレッジ
単体テストには Karma (現在は v0.10.10) と Jasmine を使用し、コード カバレッジ レポートには (karma-coverage 経由で) Istanbul を使用しています。特定のケースで、コード カバレッジ レポーターの奇妙な動作に気付きました。
私がテストしようとしているコードは、おおよそ次のとおりです。
私のテストでは、テスト対象の要素でカスタム入力イベントをディスパッチし、コールバック関数が実行されます。テストはコールバックの効果をチェックし、テストに合格します。実際、コールバックにヘアリーを入れても、console.log("foo")それが出力されていることがはっきりとわかります。しかし、Istanbul のレポートは、コールバックがまったく実行されなかったと誤って示しています。
イベント リスナーのコールバックで無名関数を使用するようにテスト済みのコードを変更すると、誤動作が修正されます。
ただし、コード品質管理ツールの欠陥を補うためにアプリケーションのコードを変更する「ソリューション」は大嫌いです。
匿名関数でコールバックをラップせずに、コード カバレッジを正しく取得する方法はありますか?