問題タブ [jacoco]
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.
junit - assertNull の代わりに assertTrue を使用するとブランチが見つからない
Java/Junit では、何らかのオブジェクトで null をテストする必要があります。条件をテストするにはさまざまな方法がありますが、ほとんどのテストで assertTrue を使用しています。assertTrue で null をチェックすると、EclEmma は 1 つのブランチのみをテストしていると述べています。
手動でステートメントを変数に解決すると (結果をブール値に設定して assertTrue に渡すなど)、コード カバレッジは assert で完了したと見なされますが、変数の初期化行では完了したと見なされません。
なぜこうなった?これは、 http://sourceforge.net/apps/trac/eclemma/wiki/FilteringOptionsで言及されているように、Java が明らかに追加する余分なバイト コードに関連していますか? 任意の解決策 (他の assert ステートメントの使用を除く)。
true をアサート:
true をアサート:
assertNull:
java - jacoco を使用して外部 Java ライブラリのコード カバレッジを取得するにはどうすればよいですか?
ライブラリ (jar ファイル) を使用する Java プロジェクトがある場合、この jar 内のクラスのコード カバレッジを取得することは可能ですか?
この背後にあるアイデアは、プロジェクトが依存している外部ライブラリ (たとえば、Spring、Hibernate、または scala プロジェクトの場合は scala jar など) が実際に使用されている割合を調べたいということです。それらをリストして、必要な .class ファイルのみを含む単一の jar に再バンドルして(たとえば、apache felix のようなプラグインを使用して)、可能な限り小さい jar を取得できると想像することさえできます。これを本当にやりたいかどうかはわかりませんが、多くの理由でおそらく悪い考えであることは承知していますが、実験として考えています。
方法がわかりません。jacoco は、プロジェクト内のクラス ファイルのカバレッジのみを直接報告します。多分私は何か間違ったことをしている、私はこのようなmavenプラグインを使用しています:
インクルード タグを変更しようとしましたが、唯一の効果は、プロジェクト内に直接クラス ファイルのみを含むデフォルトを制限することです。
前もって感謝します !
oersの回答後に編集:
antとantrun-pluginでそれを行う方法を見つけましたが、非常に複雑ですが、antrunプラグインのバージョンでは多くの問題がありました(基本的なタスクであっても、最近のバージョンを機能させることができません)。 Mavenに固執します。アリの代わりに je jacoco maven プラグインで同等のことを行う方法を誰かが知っていれば、私は興味があります!
ant による部分的な解決策: 実際、jacoco.exec ファイルには、外部 jar のクラスへの参照が既に含まれていました。したがって、これらのjarを考慮するように指示する必要があるのはレポートタスクであり、私が考えた実行時フェーズではありません. これが私が使用したmaven構成です(http://intellectualcramps.wordpress.com/2012/03/22/jacoco-tycho-and-coverage-reports/でヘルプを見つけました):
java - 自動生成されたコードを Eclemma コード カバレッジ ツール Java から除外できますか?
コードの一部 (自動生成されたコードなど) を eclemma コード カバレッジ ツールから隠すことはできますか? C# には、ここで説明されているオプションを実行するオプションがあります。Java でこのようなものはありますか?
編集済み: 私は ant を使用していません。Eclipse 用に Eclema プラグインを使用しています。コードの一部をカバレッジ ツールから除外するためにできる構成はありますか。
ありがとうございました!
maven - Jacoco w/ Jetty + Selenium RC
なんらかの問題が発生したため、ここに戻ってきました。(私が取り組んでいるプロジェクトについて前に 2 つまたは 3 つの質問を投稿しましたが、この質問はまだこのプロジェクトに関連しています)
Maven を使用して構築した smartGWT webapplication があります。単体テストを行うには、Selenium RC を使用する必要があり (smartClient によって提供される user-extensions.js を使用できるようにするため)、継続的インテグレーションと互換性がある必要があるため、Web アプリケーションを Jetty コンテナーにデプロイする必要がありました。問題が 1 つだけ残っ
ています。Jetty で Jacoco を使用して、Sonar にテストを認識させ、コード カバレッジを提供するにはどうすればよいでしょうか。
アプリケーションがデプロイされるたびに jacoco-agent を実行できるプロパティが jetty-maven-plugin にありますか?
よろしくお願いします。もう一度 =)
(下手な英語でごめんなさい)
maven - ソナーが Jacoco レポートを読み取らない
統合テストが maven-failsafe-plugin によって実行され、単体テストが maven-surefire-plugin によって実行されるプロジェクトがあります。
jacoco を使用してカバレッジ レポートを生成します。
mvn install を実行すると、Jacoco カバレッジ レポートが正常に生成されます。
しかし、 mvn -mvn -Pdev sonar:sonar を実行すると、Sonar は Jacoco の代わりに Cobertura プラグインを使用します。
私が試してみました:
1)ソナー設定でjacocoをデフォルトのカバレッジプラグインとして設定します[動作しませんでした]
2) コマンド ラインで Jacoco パラメータを指定します (例: -Dsonar.core.codeCoveragePlugin=jacoco) [同様に機能しませんでした]
誰にもアイデアはありますか?ありがとう。
ところで、私はSonar 2.8を使用しています
maven - ソナーとジャココ:どうやって?(コベルチュラとの互換性)
Sonar と Jacoco が SO でレポートを正しく生成しないことについて多くの質問があることは知っていますが、どれも私の問題を解決するのに役立ちませんでした:
これが取引です:
Cobertura を使用してコード カバレッジを計算するプロジェクトがあり、それを変更することはできません。Sonar は、サーバー側に Cobertura を使用する必要があります。しかし、一方で、Selenium RC でテストされたこのクライアント (Java で smartGWT を使用する Web アプリケーションについて話している) があります (それが smartGWT をテストする唯一の方法であるため)。
これらのテストはデプロイされたアプリケーションで行われるため、Cobertura は Selenium テストのカバレッジを計算できません。Jacoco は Java エージェントとして起動されるため、それを計算できます。したがって、すべてが私のコンピューターで正常に機能しています。jacoco.exec が正常に生成されました。しかし、ソナーはそのファイルを読み取る方法を見つけられないようです。または、衝突しているのはcoberturaとjacocoだけかもしれません...
Jenkins が生成するエラーは次のとおりです。
そして、これが確実なプラグインの私の構成です:
私が犯した可能性のある間違いがわかりますか?それとも、jacoco jar などに別のパスを設定する必要がありますか? とにかく助けてくれてありがとう。
maven - JVM引数とjacoco-maven-pluginを追加しますか?
Mavenプラグインを使用してjacocoエージェントを起動し、surefireにいくつかの引数を追加することが有用かどうかを知りたいだけですか?Jacocoを2回起動しますか?
例 :
と
ant - JaCoCoレポートは正しいように見えますが、ソースを表示できません
私はJaCoCoを初めて使用し、生成しているhtmlレポートがソースにリンクされていない理由を理解しようとしています。
カバレッジ番号は正しく見え、各クラス、次に各メソッドを参照できますが、ソースがわかりません。sourcefilesタグ内でさまざまなことを試しましたが、何も機能していません。他の誰かがこの問題を抱えていましたか?これが私のantスクリプトのスニペットです:
..。
..。
maven - ジャココとソナーのコードカバレッジ?
使用: JaCoCo 0.5.3, Maven2, Sonar 2.14, sonar-maven-plugin 1.8, SùartGWT 3.0
現在試みていること: Selenium ユニット テストの Sonar でコード カバレッジを取得します。
問題 :センサーが正しく起動されているにもかかわらず、コード カバレッジが 0% から移動しない場合、正しく生成された jacoco.exec を分析します。
リソース : https://gist.github.com/2888912 pom.xml
コードカバレッジを取得しようとしているのは約2週間です。ソナーを 2.10 から 2.14 にアップグレードし、すべてのソナー プロパティを変更し、プラグイン jacoco (maven 用) を試しましたが、まだ結果が得られません。誰かが同じ問題を抱えていて解決策を見つけた場合は、どのように機能するか教えてください。
私のテストでは、コード カバレッジの少なくとも 0.5% を生成する必要があると確信しています。私の Selenium テストは実際に SeleniumTestLoginEntry.java で実行されますが、影響はありますか? これを TestLoginEntry.java と呼ぶ必要がありますか? (テストされたクラスは LoginEntry.java です) 私は Surefire を使用して JaCoCo (タグを参照) の javaagent を開始しており、実際に jacoco.exec を生成しています。
助けてください、私は完全に迷っています。それを機能させるのにあと1週間しかありません... :(
よろしくお願いします。
groovy - Sonar + JaCoco が Groovy コードを対象としてカウントしない
単一の静的メソッドを持つ Groovy クラスがあります。
テスト ケースが 1 つまたはいくつかあります。
これにより、6/12
Sonar/JaCoCo に従ってブランチがカバーされます。
そのため、コードをより冗長なものに変更しました。元のコードが「巧妙すぎる」などとは思いませんが、より明示的かつ明確にしました。だから、ここにあります:
そして今、他に何も変更することなく、Sonar/JaCoCo はそれを完全にカバーしていると報告しています:
これはなぜですか?