0

私は sonar-runner を使用して、gallio プラグインを使用して C# コードのテストとコード カバレッジを実行しています。テストは正常に実行されていますが、ソナー Web UI でコード カバレッジを確認できません。

sonar_code_coverage_snapshot

私のソナー設定は次のとおりです。

sonar-project.properties 関連するビットのみ 言及 する

何が欠けているのか分かりませんか??

sonar.projectKey=XXX:XXX
sonar.projectVersion=trunk
sonar.projectName=XXX
sources=.
sonar.language=cs  
sonar.dotnet.visualstudio.solution.file=Project.sln
sonar.dotnet.excludeGeneratedCode=false
sonar.dotnet.4.0.sdk.directory=C:/WIndows/Microsoft.NET/Framework/v4.0.30319
sonar.dotnet.version=4.0 
# Gallio
sonar.gallio.mode=
sonar.gallio.coverage.tool=NCover
sonar.gallio.runner=IsolatedAppDomain
sonar.NCover.installDirectory=c:/Program Files/NCover
sonar.gallio.installDirectory=C:/Program Files/Gallio
sonar.dotnet.test.assemblies=$(SolutionDir)/../**/bin/**/*.Tests.Unit.dll
# FXCop
sonar.fxcop.mode=   
#StyleCop
sonar.stylecop.mode= 
#NDeps
sonar.ndeps.mode=skip

sonar-runner.properties

4

2 に答える 2

1

あなたが言った

sonar.dotnet.buildConfigurations = "リリース|x86"

そうであれば、バイナリとソース ファイル間のマッピングを把握するために必要な .pdb ファイルがビルドで生成されていない可能性があります。

デバッグビルドで試してみるとうまくいきますか?

于 2012-11-02T00:37:56.717 に答える
0

Sonar の NCover でこれと同じ動作が見られました。Sonar が Gallio の NCover ランナーに対して無効な引数を生成していることがわかりました。

引数をより簡単に調べることができるように、Sonar のランナーからの出力をテキスト ファイルにパイプしてみてください (コマンド ラインで sonar-runner > output.txt と入力するだけでこれを実行できます)。

出力に次のような行が表示される可能性があります。

INFO  .u.c.CommandExecutor - Executing command: C:\Program Files\Gallio\bin\Gallio.Echo.exe /r:Local /report-directory:E:\Reports\.sonar /report-name-format:gallio-report /report-type:Xml E:\Projects\UnitTests\bin\Release\UnitTests.dll /runner-property:NCoverCoverageFile=E:\Reports\.sonar\coverage-report.xml /runner-property:NCoverArguments=//ias MyFirstAssembly;MySecondtAssembly;MyThirdAssembly

コマンド ラインで Gallio を介してこれを手動で実行しようとすると、エラーが発生します。

Cannot find file 'MyFirstAssembly;MySecondtAssembly;MyThirdAssembly'

このリストを MyFirstAssembly* などの単一のエントリに手動で編集すると、すべてが期待どおりに機能します。

これは、Sonar が Gallio に対して無効なコマンド ライン引数を生成していることを示しているようです。私は NCover が大好きですが、代わりに OpenCover を使用するのが最も簡単な解決策でした。

于 2012-11-19T20:20:00.163 に答える