問題タブ [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.
node.js - Node, Mocha を使ってコードカバレッジ情報を取得する方法
最近、Mocha の助けを借りて Node プロジェクトの単体テストを開始しました。これまでのところ順調に進んでおり、テストでカバーするすべての角度について考えているうちに、コードが大幅に改善されていることがわかりました。
ここで、私の経験をチームの他のメンバーと共有し、彼らが独自のテストを実行できるようにしたいと思います。共有したい情報の一部は、私のコードが実際にどれだけカバーされているかということです。
以下は、さまざまなコンポーネントまたはモジュールに分割したアプリケーション構造のサンプルです。再利用を促進するために、すべての依存関係を最小限に抑え、コンポーネント フォルダーに分離しようとしています。test/
これには、プロジェクト ルートのデフォルト フォルダーではなく、テストを分離したままにすることも含まれます。
現在、私のpackage.json
見た目はこんな感じです。私はイスタンブールをいじっていますが、それに縛られているわけではありません。また、同様のレベルの成功でブランケットを使用してみました.
コマンドをそのまま実行するtest-cov
と、Istanbul から次のエラーが表示されます (これは役に立ちません)。
私の質問は次のとおりです。現在のアプリケーション構造と環境を考えると、Istanbul (または別のツール) を使用してコード カバレッジを正しくレポートするにはどうすればよいですか?
TL;DR
Node、Mocha、および現在のアプリケーション構造を使用してコード カバレッジをレポートするにはどうすればよいですか?
編集
明確にするために、Mocha はこの現在の状態で正しくテストを実行しています。コード カバレッジ レポートを取得することは、私が仕事に取り掛かるのに苦労していることです。
編集2
別の質問が既に私の質問に回答している可能性があるという通知を受け取りました。それは、イスタンブールをインストールしてcover
コマンドを実行することを提案しただけでした。別の提案では、テスト コマンドを で実行することを推奨しています_mocha
。これは、私が行ったいくつかの調査によると、Istanbul が Mocha 用のフラグを飲み込むのを防ぐためのものであり、Mocha の新しいバージョンでは必要ありません。
node.js - Istanbul と Mocha を使用して ES6 コードをカバーする
ES6 で記述された Node コードがあり、これを発行してテストしmocha --harmony
ます。テストは問題ありません-すべてが機能します。
ここで、カバレッジとイスタンブールをミックスに追加したいのですが、最初に遭遇したアロー関数でエラーが発生し続けます。
これが私が試したことです:
- dev の依存関係として istanbul-harmony (git://github.com/gotwarlost/istanbul.git#harmony から) をインストールしました。
- 次のコマンドを実行します。
"./node_modules/.bin/istanbul" cover "./node_modules/mocha/bin/_mocha" -- --harmony tests -R spec
- istanbul と _mocha の両方のフラグの組み合わせ
ES6 機能を使用して記述されたテストをカバーするために istanbul を実行するにはどうすればよいですか? 私は何が欠けていますか?
javascript - Karma/Istanbul でターゲット コード カバレッジを設定する
コード カバレッジのために Karma-Coverage(Istanbul) を使用して Karma Maven プラグインを実行しています。Karma-Coverage は、必要な (推奨される) コード カバレッジに対してデフォルトで 80% に設定されているようですが、プロジェクトで 90% のコード カバレッジを適用したいと考えています。ただし、これをどこに設定するかわかりません。
Karma/Istanbul でターゲット コード カバレッジを適用する方法はありますか?
javascript - AMDモジュールでIstanbul.jsがカバータイムに失敗する
AMD スタイルのモジュールで Backbone/Marionette と RequireJS を使用してアプリを作成し、それにカバレッジ ステップを追加しようとしましたが、実行時istanbul cover myTestFile.js
に istanbul で次のエラーがスローされます。
__cov_EsyvGtIcLKP7TgjU5WMSQw.s['1']++;define(関数(必須){__cov_EsyvGtIcL
define is not defined
ブラウザ側のコードをカバーしたことがなく、AMD スタイル モジュールを使用するのはこれが初めてなので、これを修正する方法はわかりません。
イスタンブールも取材レポートを書いたと言っていますが、それが実際にうまくいったかどうかはわかりません。
どんなポインタでも大いに役立ちます。コマンドの完全な出力は次のistanbul cover mytestfile.js
とおりです (一部の詳細が変更されています)。
javascript - コード内からイスタンブールを実行することは可能ですか?
プログラムでイスタンブールを実行する方法はありますか? MeteorJS アプリ内からイスタンブールをトリガーしたいと思います。イスタンブールのレポは、API を使用することでそれが可能であることを示唆しているようですが、私はそれを機能させることができません。
イスタンブールの API を使用してプログラムでレポートを生成する簡単な例を誰かが持っていますか?
ありがとう