問題タブ [karma-coverage]

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.

0 投票する
0 に答える
1593 参照

google-chrome - カルマ カバレッジのカルマは開始に時間がかかります

現在、karma-coverage プラグインを使用している場合、Karma (0.12.31) に問題があります。

カバレッジなしで Karma を実行すると、数秒後にテストが実行されます。karma-coverage プラグインでカルマを実行すると、かなり時間がかかります。取材にもっと時間がかかることは承知していますが、その時間はばかげていると思います。

カルマカバレッジを使用すると、「カルマクロムは60000ミリ秒でキャプチャされていないため、殺害されました」というメッセージが表示され、カルマがChromeを強制終了します(43.0.2357.132を使用しています)。5 分後、新しい Chrome ウィンドウが開き、数秒後にテストが最終的に実行されます。

私の設定は正しいのでしょうか?4000 回のテストのうち 12 回しか実行していませんが、4000 回のテストについて話しているのです。

これは私の karma.conf.js ファイルです:

0 投票する
0 に答える
342 参照

javascript - CoffeeScript と CommonJS pre. を使用するための Karma 構成のセットアップ方法

CoffeeScript と CommonJS プリプロセッサを使用して Karma をセットアップしようとしていますrequire is not definedが、ターミナルにエラー ログが表示されます。

ソースとテスト ファイルが common-js ブリッジ js ファイルの前に読み込まれるため、読み込み順序の問題のようです。読み込み順序を指定するにはどうすればよいですか? または、私の設定に他の問題がありますか?

以前の構成のエラーは、ERROR [preprocessor.coffee]: unexpected MATHnode_modules フォルダー内のすべてのコーヒー ファイルにプリプロセッサが適用されていたという問題でした。

Karma.config.coffeeはこのように見えます:

私のディレクトリ構造は次のようになります。

ここに画像の説明を入力

$ node_modules\.bin\jasmine-node spec --coffee --colorテストが正常に実行されるように jasmine-node で実行すると、テスト ファイルが機能するはずです。イスタンブールを Windows 8.1 (64 ビット) で直接 CoffeeScript と連携させることができなかったので、Karma を使用したいと思います (コマンド ラインの問題と思われます)。

現時点では、カバレッジは html レポートに何も追加していませんが、それはrequire undefined問題が原因だと思います。

ブラウザ コンソールに次のエラーが表示されます。 ここに画像の説明を入力

0 投票する
1 に答える
79 参照

code-coverage - Karma-coverage : オブジェクトにはメソッド isIdentifierPart がありません

JQuery Mobile プロジェクトのコード カバレッジには Karma を使用し、テストには QUnit または Jasmine を使用したいと考えています。
必要なすべてのノード パッケージ (karma、karma-cli、karma-coverage、jasmine/qunitjs、karma-chrome-launcher) をインストールし、次の karma.conf ファイルを作成しました。

カルマ.conf.js

そしてこのテストファイル(Jasmineを使用):

不在.test.js


私のプロジェクトでカルマスタートを開始します。私の不在.jsファイルには、この関数のみが含まれています:

私のカバレッジレポートが生成され、私の不在.jsファイルでカバーされているコードの50%を示しています。

しかし、「if」ステートメントを使用して関数を変更すると、次のようになります。

コンソールに次のエラーがあります。

実際、条件ステートメントまたはループを使用すると、このエラーが発生しました。カルマの設定に何か問題がありますか?

編集

Node.js とすべての karma パッケージを再インストールしましたが、最終的には機能しますが、奇妙な問題が発生しました。カバレッジレポーター ディレクトリを指定した場合、生成されたすべての html ファイルがソース ディレクトリに配置されます...
何か考えはありますか?

0 投票する
0 に答える
119 参照

jasmine - Jasmine: transformResponse/resolve を使用した関数

コントローラーに機能があります:

そして、次のようにテストします。

テストはパスしましたが、関数 transformResponse がテストでカバーされていないカルマ カバレッジが表示されます。この関数を正しくモックするにはどうすればよいですか? ありがとう!

0 投票する
2 に答える
640 参照

angularjs - AngularJS ディレクティブ - 単体テストのカルマ カバレッジ

ディレクティブの単体テストをカバーするのに問題があります。http://blog.revolunet.com/blog/2013/12/05/unit-testing-angularjs-directive/ (Julien Bouquillon 著)の方法を使用し て、ディレクティブの単体テストを作成しました。そのブログで提示されたアイデアは私のニーズにぴったりで、よく説明されていましたが、私の問題は、カバレッジが Karma Coverage (イスタンブール コード カバレッジ ツール) に反映されていないことです。

カバレッジの概要に反映されるようにするには、ディレクティブの単体テストをどのように作成すればよいですか? 誰かがそれを可能にする例を持っていますか?

0 投票する
1 に答える
6342 参照

javascript - 変換前のソース コードの Karma コード カバレッジを取得する

Karma を使用してテストを実行し、webpack を使用してファイルをバンドルし、babel を es6 -> es5 変換に使用しています。テストを実行し、コード カバレッジを生成していますが、コード カバレッジの数値はトランスパイル後のソース ファイルのものです。代わりに元のソース ファイルのコード カバレッジを取得する方法はありますか?

プリプロセッサを使用してみましたsourcemapが、何もしないようでした。それをどこかのwebpack構成に追加する必要がありますか?

カルマ.conf.js

0 投票する
1 に答える
1746 参照

angularjs - Karma-Coverage および Istanbul HTML レポートが予期されたディレクトリに出力されない

イスタンブールが HTML レポートを Karma 設定で指定されたディレクトリに出力するのに問題があります。現在、メインの index.html は正しいディレクトリに出力されますが ( reports/coverage)、詳細な html 子ページはソース ファイルと同じディレクトリに出力されます ( www/js/...)。こちらおよびこちらで説明されている問題と同じですが、提案された解決策を試しても問題は解決しません。

これは私のカルマ設定ファイルの内容です:

すべてのカバレッジ ファイルがreports/coverageディレクトリに配置されるように、これを解決する方法についての提案をいただければ幸いです。ありがとう。

0 投票する
0 に答える
314 参照

angularjs - AngularJS 単体テスト ディレクティブ

AngularJS 単体テストを行っており、Karma - Coverage を使用して結果を確認しています。これが私のコードです。

以下のテストケースを書きました。

ご覧のとおり、テストするために多くのコードを試しましたkeydownが、どれも機能しません。コード カバレッジ レポートの結果は変わりません。どうすればテストできますか?私は AngularJS とその単体テストが初めてで、Google で検索してもまだ解決策が見つかりません。

編集: Angular ディレクティブ クリック ハンドラーの単体テストを試み、コードを変更しました。しかし、それでもうまくいきません。