2016-03-29 18 views
2

現在、当社の.NETアプリケーションでSonarQube/SonarLintの使用を評価中です。私たちは今まで見てきたことにとても満足しています(SonarQubeをこれまでに持ってきたことについての名誉 - 私は数年前、私のPhDプロジェクトに使用しました。SonarQube/SonarLint/Visual Studio:ソリューション内のすべてのプロジェクトに対して1つのルールセットを使用

SonarLintインスタンスをSonarQubeサーバーに接続して(うまくいきました)、バインドされたプロジェクトの同期を開始したとき、SonarLintは(期待されていた)種類のNugetパッケージをダウンロードし始めました。私たちのソリューションのプロジェクトごとに1つまたは2つの.rulesetファイルを作成しました(ソリューション全体のルールセットと思われるファイルSonarQube/<solution name>CSharp.rulesetに加えて)。

私が期待していたのは、単一のルールセットだけが完全なソリューション(そして場合によっては、これが意味を持つプロジェクト(例えば、テストプロジェクト)のルールセットを上書きするオプション)に有効です。

この動作はまったく可能ですか?つまり、何も見逃しましたか? SonarLintがないところで私が今までに特定した分野はドキュメンテーションだけです。

+0

私は私の質問に答えを得ていないことに少し驚いています(SonarLintチームはSO )、それはむしろ基本的な要件であると思われるので、私は多くのチームが同じユースケースを持つことを期待しています。私の質問について何か愚かなことはありますか?このような場合は、そのようなリンクなどを提供してください... SonarLintとVSの責任を混合しているのですか、まったく使用できないのですか?もう一度、あなたの知識を共有してください...事前に感謝します。 – csoltenborn

+1

解決策レベルでルールセットを変更することは、そのレベルのルールセットが変更されていない場合はプロジェクトレベルで適用されます。 XMLエディタでファイルを開くと、その違いがわかります。 –

答えて

1

これらの追加のルールセットファイルが作成される理由があります。まあ、実際には複数あります。

あなたはすべてのプロジェクトが付着しなければならないにベースラインを設定することができるようにすることです
  • が、特定の種類のコードのプロジェクトのための追加ルールを有効にします。いくつかのMSOCAFルールを有効にして、Sharepointプロジェクトに固有のもので、UnittestプロジェクトやWindowsサービスプロジェクトには意味がないものがあります。

  • プロジェクトで技術的負債を修正しているときに、個々のプロジェクトのルールセットをゆっくりと締めて、特定のプロジェクトにクリーンアップの労力を集中させることができます。ソリューション内のすべてのプロジェクトで特定のルールまたは一連のルールを同時にクリアする必要はありません。

プロジェクトルールセットファイルの1つは、SonarQubeと同期するたびに上書きされます。残りの1つは、あなたがそれを残したままになります。カスタマイズを保存してSonarQubeベースラインに変更を安全に同期させることができます。

これを正しく覚えている場合、ソリューションルールセットはプロジェクトのルールセットに含まれており、カスタマイズを保存するルールセットと同じです。現在のところ、どのルールセットファイルサーバをどの目的に使うかを検証するSonarQubeサーバは手元にありませんが、これはその背後にある理由です。

+0

あなたの答えをありがとう!しかし、いくつかのことはまだ私には分かりません。私は確かに、さまざまなプロジェクトの異なるルールセットをemplyoingする必要があると思っていますが、それぞれのプロジェクトごとにルールセットを分けておくことはメンテナンスの悪夢です(私はあなたのポイントを理解していないことを認めています。結局のところ、私たちは1つの解決法と多くのプロジェクトルールセットを持っていたでしょうから、前者をどのようにしてラッパーに含めることができますか?)。 Tbc ... – csoltenborn

+1

私たちが念頭に置いておくべきことは、すべてのプロジェクトのベースとなるソリューションルールセットと、特定のプロジェクトのニーズをカスタマイズするために必要なプロジェクトルールセット(唯一)です。ソリューションルールセットから「継承」されたルールを追加または無効にすることができます。このようなことがSonarQubeの魔女すべてで可能ですか?そのユースケースに関する関連ドキュメントを指しているかもしれませんか?再度、あなたの洞察に感謝します。 – csoltenborn

+1

いいえ、ソナーのセットはベースラインになるでしょう、すべてのプロジェクトに有効です。同じsonarqubeプロジェクトで異なる品質のプロファイルを持つ能力は4.somethingで削除されました。ソナーのものはすべてのプロジェクトのベースラインになるでしょう。私はあなたが継続的な改善の視点からやるよりも、それを好きではありません。 – jessehouwing

2

私は次のブログ記事では、いくつかのルールセットを持つの関心について少し詳しく説明しました:SonarLint for VisualStudio 2.1 released, brings consistency with MSBuild, navigation to SonarQube and notifications

あなたのための品質の定義を強化したい場合にはあなたがカスタマイズ可能で、プロジェクトごとにルールセットを持っています解決策、SonarQube品質プロファイル(SonarQubeのガバナンスへの準拠)に対応しています。

+0

それは正しい方向への大きな一歩のように見えます - このSOの質問を通して私に知らせてくれてありがとう! – csoltenborn

関連する問題