問題タブ [scoverage]
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.
unit-testing - sbt でカスタムおよびプラグインの構成を使用してタスクを実行していますか?
テストに使用されるカスタム構成を含む完全なビルド定義を持つ SBT プロジェクトがあります。
独自の構成が付属するプラグインを追加します。可能であれば、両方の構成を使用してタスクを実行できるようにしたいと考えています。
不可能な場合は、プラグインからカスタム構成に構成を取り込みたいと考えています。
詳細
私のカスタムunit
構成は、特定のテストを単体テストとして分類するために使用され、sbt-scoverageを使用してカバレッジを追加したいと考えています。
私の完全なビルド定義は次のとおりです。
単体テストを実行するために、 を実行しますsbt unit:test
。
IA)ビルド定義sbt-scoverage
の構成に追加する方法、または B) SBT 実行にと構成の両方を含める方法、たとえば?unit
scoverage
unit
sbt "unit,scoverage:test"
編集提供された2つの回答に基づいて、私が望むものに近づいています。私が今抱えている問題は、テストフィルターとそれを構成に適用することです。上記の元のコード スニペットを更新して、ファイル名に基づいて使用したフィルターを含めました。testOptions
プロジェクト セクションと使用方法を参照してくださいunitTestFilter
。カバレッジを追加するために、カバレッジ テスト用の新しい構成を追加したのでUnitTest
、 、ComponentTest
、CoverageUnitTest
およびCoverageComponentTest
. 私が今抱えている問題は、テスト オプション/ファイル名フィルターを取得して、scoverage 構成に伝達できないことです。
方法 1: scoverageTest を拡張する構成を作成する
上記の方法では、設定は適用されません。を実行coverUnit:test
すると、コンポーネント スペックとユニット スペックの両方が実行されます。フィルターで動作するも使用してみtestOptions in scoverageTest
ましたが、問題は、プロジェクトに 2 つの構成、つまり CoverageUnitTest と CoverageComponentTest があり、 を使用するin scoverageTest
と、両方のタスクに 1 つのフィルターのみが適用されることです (つまり、coverUnit:test とcoverComponent:test 両方とも、順序に基づいて単体テストまたはコンポーネント テストを実行します)。
方法 2: テストを拡張し、インストルメンテーションを追加する
繰り返しますが、このメソッドは unitTestFilter でテストをフィルタリングしません。
ScoverageSbtPlugin ソースを見ると、どうにかしてこれをオーバーライドする必要があるように見えます: inConfig(scoverageTest)(Defaults.testSettings) ++
、これは正しいアプローチですか?
edit #2 これは、「CoverageUnitTest」を「scoverageTest」に置き換えた方法 1 を使用した回避策です。
で実行TEST_TYPE=ComponentSpec sbt coverComponent:test
scala - 原因: java.lang.NoClassDefFoundError: org/sonar/plugins/surefire/api/AbstractSurefireParser
SonarQube Server 4.5 と SonarQube Runner 2.4 をインストールしました。sonar plugins ディレクトリに sonar-scoverage-plugin-1.1.0.jar を追加しました。/opt/sonar-runner/sonar-runner.properties で、コメントを外しました
このサンプル プロジェクトhttps://github.com/RadoBuransky/sonar-scoverage-plugin/tree/master/samples/sbt/multi-moduleに sonar -runner を使用しようとしました。
2つのコマンドを実行しました
$ sbt clean scoverage:test
$ソナーランナー
私はこの例外を得ました
誰でもこれを解決するのを手伝ってもらえますか? 前もって感謝します。
scala - scala テストで Java コードのコード カバレッジを取得する
このプロジェクトは、ソース コードの 90% が Java で記述されたマルチ モジュールの Maven プロジェクトです (Scala に少しあります)。単体テストは 80/20 Java/scala であり、統合テストは 20/80 Java/scala です。
Clover を試してみましたが、(現時点では) scala をサポートしていません。
ジャココしてみました。最初に、マルチモジュール構成が原因で結果を取得する際に問題が発生しましたが、現在はソナーを使用して Java カバレッジを表示しています ( http://www.aheritier.net/maven-failsafe-sonar-and-jacoco-に感謝します)。ボートに乗っている/ )。jacoco でtimezra ( http://timezra.blogspot.com/2013/10/jacoco-and-scala.html ) を使用しましたが、それは scala である小さなソース コードしか分析しませんでした。
私は Scoverage を試し始めましたが、timezra と同じ問題があるようです (それは、私が持っているミックスではなく、scala-to-scala を分析します)。そのため、scct や undercover も試していません。
java/scala の混合を処理するツールはありますか?
scala - TestNG (および Gradle) による調査
Scoverage を TestNG で使用することは可能ですか? それとも JUnit を使用する必要がありますか? Gradle スクリプトに gradle-scoverage プラグインを含めて実行していますが、0.00% のカバレッジが表示されます。
スクリプトが機能するように構成する方法はありますか? または、Scoverage と TestNG のどちらかを選択する必要がありますか?