問題タブ [maven-cobertura-plugin]
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.
scala - Scalatest、Maven、cobertura でコード カバレッジがゼロになるのはなぜですか?
Maven と Scala を使用して、Cobertura を非常に単純なサンプル プロジェクトに取り組もうとしています。これが私のポンです:
編集: 一方、この pom はかなり悪いことがわかりました。より良い例を探している場合は、受け入れられた回答の例を参照してください。
Surefire を無効にし、Scaltest を有効にすると、実際にテストが実行されます。
Pom のビルドおよびレポート セクションに Maven Cobertura プラグインを追加しました。私が走るとき
カバー率レポートを受け取りました - 何もカバーされておらず、カバー率は 0% であると記載されています。
ここで、さまざまなことを試しました。実行部分をいじり、ビルドからレポート セクションに移動したり、その逆を行ったり、さまざまな Maven の目標を試しました。レポートが作成されなかったか、カバレッジが 0% であると記載されていたかのいずれかでした。
スカバーもやってみた!しかし、同様の結果が得られます。
だから私はいくつかの非常に基本的な間違いを犯したと思います。誰でも私にそれを指摘できますか?
java - Jenkins での Cobertura の重複テスト実行
Jenkins 実行の一部として cobertura を含むビルドがあります。ただし、すべてのテストを 2 回実行していることに気付きました。
Jenkins で Maven プロジェクトとしてプロジェクトをセットアップしました。そして、実行する目標を次のように設定しました:clean coberture:cobertura install
install
コマンドの一部は、インストール ゴールの残りの部分 (パッケージなど) を実行するだけだと思っていました。ただし、コンパイルとすべてのテストを再実行します。これは、すでにそこにテストがあるという事実にもかかわらずです。
ビルド前とビルド後の手順のさまざまな組み合わせを構成しようとしましたが、問題が発生し続けます。一部の組み合わせでは、jar などのビルド アーティファクトが Jenkins で公開されません。それ以外の場合、テスト結果が欠落しています。
おそらくビルドを単なるシェルビルドとして作り直す必要があると思いました。その後、次のコマンドを実行できると思います。mvn clean cobertura:cobertura && mvn install -Dmaven.test.skip=true
私はこれが私が望むことをするだろうと思います。少なくとも、すべてのテストの実行を 2 回停止します。
これが最善のアプローチですか、それとも別の方法がありますか?
これは、POM に Cobertura を含める方法です。
java - Cobertura チェックが Travis CI で失敗する
私の Maven ビルドでは、Cobertura を使用して、特定の最小限のカバレッジがあることを確認します。
を実行するmvn install
と、これは正常に機能します。ただし、Travis CI では、最初 mvn install -DskipTests=true
に Travisが依存関係を取得するために実行されるため、ビルドは失敗します。明らかに、テストがスキップされるとカバレッジがなくなるため、ビルド全体が失敗します。
テストがスキップされた場合にチェックをスキップするように Cobertura を設定できますか? それとも、トラビス側で、他の解決策はありますか?
これが私の.travis.yml
ファイルです:
cobertura - バイトコードが変更されないように Cobertura maven プラグインを使用するには?
最近、プロジェクトにcoberturaプラグインを含めようとしました。しかし、私は奇妙な問題に遭遇しました。今、私がこれをやろうとすると:
mvn clean package cobertura:check-integration-test
私のプロジェクトは問題なく組み立てられます。しかし、ここにデプロイした後、メッセージとして受け取るものは次のとおりです。
java.lang.NoClassDefFoundError: ネット/sourceforge/cobertura/coveragedata/LightClassmapListener
これは、私が理解しているように、cobertura がクラスのバイトコードを変更するために発生します。では、チェックとコードのビルドをどのように進めればよいでしょうか。現在、teamcity の次のソリューションを考え出しています。
最初のステップで cobertura を実行します。
mvn clean package cobertura:check-integration-test
その 2 番目のステップの後、通常のアセンブリが実行されます。
mvn clean package
これは機能しているように見えますが、cobertura プラグインの影響を受けないバイトコードを使用してクリーンなビルドを作成するために、パッケージ化のプロセスを 2 回実行する必要があるのは奇妙に思えます (これには 2 倍の時間がかかります)。
java - cobertura maven プラグインは、インターフェースの java8 Default Method 宣言では機能しませんか?
java8 のデフォルト メソッド宣言を使用してインターフェイスを宣言しました。
次に、Maven ゴールを実行しました。
cobertura は java8 のデフォルト メソッド宣言をサポートしていないため、ログにエラーが表示されます。
どうすれば修正できますか?
maven-3 - コード カバレッジ: Cobertura と SonarQube 5.3 Maven の統合
継続的インテグレーションの一環として、すべてのプロジェクトを ANT から MAVEN に移行しています。新しいプロジェクトで JaCoCo を使用してコード カバレッジを測定し、SonarQube と正常に統合しました。
Cobertura を使用している既存の ANT プロジェクトはほとんどありません。これをMavenに移行しているときに、以下の例外が発生します
例外
pom.xml
専門家、ここで何か不足していますか?