1

いくつかの最初の統合テストを含む .NET C# ソリューションがありますが、単体テストはありません。テストの実行とコード カバレッジを機能させるには、どうすれば sonar-project.properties を構成する必要がありますか? 使用時:

sonar.dotnet.visualstudio.testProjectPattern=*.Tests;*.Test
sonar.dotnet.visualstudio.itProjectPattern=*.IntegrationTest
sonar.opencover.installDirectory=C:/Program Files/OpenCover
sonar.gallio.coverage.tool=OpenCover
sonar.gallio.runner=IsolatedProcess
sonar.gallio.it.mode=active

ソナー 言う:

14:42:55.813 INFO  p.d.a.m.ModelFactory - The project 'foo.IntegrationTest' has been  qualified as a test project.
14:42:55.844 INFO  p.d.a.m.ModelFactory - The project 'bar.IntegrationTest' has been qualified as a test project.
...
Gallio won't execute as there are no test projects

テストパターンを変更する場合:

sonar.dotnet.visualstudio.testProjectPattern=*.IntegrationTest
#sonar.dotnet.visualstudio.itProjectPattern=*.IntegrationTest

ガリオは統合テストを「単体テスト」として実行し、コード カバレッジが機能します。ヒントはありますか?

4

1 に答える 1

0

これをコードカバレッジの生成に使用しています。たとえば、プロジェクトは Test/Test.csproj です

cd ./Test
nuget install Microsoft.CodeCoverage -OutputDirectory ./packages

ネストされたディレクトリの ./packages は CodeCoverage.exe になります

dotnet test --no-build logger trx --collect "CodeCoverage" /p:Debug=full -- DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.CoverageFileName="test.coverage"

ネストされたディレクトリの TestResults には、test.coverage ファイルがあります。それをcoveragexmlに変換します

CodeCoverage.exe analyze /output:test.coveragexml test.coverage

次に、ソナースキャナーで使用します

./SonarScannerMsbuild.exe /d:"sonar.cs.vstest.reportsPaths=./**/*.trx" /d:"sonar.cs.vscoveragexml.reportsPaths=./**/*coveragexml"
于 2020-08-01T18:29:26.393 に答える