-1

私は現在、より大きくより良い方法で管理する必要がある大きな Java プロジェクトに取り組んでいます。SVN、ハドソン、ソナーを使用しています。1 日に複数回チェックインした後、毎晩 Hudson ビルドが実行され、ソナーも実行されるため、新しい統計 (コード カバレッジ、複雑さなど) が得られます。しかし、これらの数値は、チェックイン後の状況/数値を示すため、現時点ではあまり役に立ちません。

実際の状況では、チェックインのたびにコードのカバー率が減少しています。ここで、現在のレベルで数値をベンチマークしたいと思います。コード カバレッジが現在 45% であるとしましょう。次のチェックインは、コード カバレッジが増加する場合にのみ許可されるべきであり、それ以外の場合は許可されません。

私の質問は、これをどのように行うことができるかです??

私はいくつかの調査を行い、2つの可能な方法を知りました

  1. SVN フックを使用する
  2. Hudson などの Continuous Build サーバーを使用する

最初のオプションのリンク/チュートリアル:サブバージョンにコミットするときにスクリプトを実行できますか?

次の2つのリンクは、2番目のオプションの方が優れていることを示唆しているようです(チェックイン時間がはるかに短いため)

質問

  1. ハドソンの構成に取り組んでいないので(ビルドを開始するために通常のユーザーとして使用しただけです)、上記の2つのリンクから理解できないのは...ソナーはチェックインが完了した後に実行されるため、ユーザーのチェックインをどのように停止しますかいくつかのテストケースが失敗した場合? それとも私の理解が間違っていますか?? または、チェックイン前後の統計を示す電子メールをすべての開発者に送信しますか? または、テストケースが失敗した場合にのみ電子メールを送信しますか??
  2. 私のユースケースは少し異なります...コミットするかどうかを決定する前に、新しいカバレッジ%(現在のチェックインの変更を含む)と古いカバレッジ%(チェックインの変更前)を確認し、新しい>古い場合にのみ許可します...ハドソン+ソナーを使用してこれを行うにはどうすればよいですか?? コード/構成の例はありますか??
  3. または、私のユースケースは Hudson を使用することでは不可能です...そして SVN フックが私にとって唯一のオプションです?? はいの場合、これを行う方法のコード例

質問をさらに明確にする必要がある場合はお知らせください

4

1 に答える 1

0

いくつかの調査を行いましたが、正確な解決策は見つかりませんでした (新しい数字と古い数字を比較します) が、3 つの解決策を示唆するこのリンクを見つけまし た 新しい Subversion コミットのカバレッジを最小限に抑える

  1. Build Breaker Plugin : 現在のテスト カバレッジの数値をハード コードされた値と比較します。ハード コードされた値は、管理者がフォートナイトごとに増やすことができます。
  2. 新しいコードに追加された新しいテストケースがあるかどうかをテストする有料ツールhttp://www.semanticdesigns.com/Products/TestCoverage/
  3. これも見つかりましたhttp://mojo.codehaus.org/cobertura-maven-plugin/usage.htmlしかし、Coberturaをテストカバレッジ分析ツールとして使用しています。
于 2013-05-26T02:56:35.810 に答える