6

vstest.console.exeを使用してコード カバレッジ レポートを生成しようとしています。また、.runsettingsファイルを使用して、パラメーターとして渡しています。

何をしようとしても、moq.dll のみのカバレッジ レポートが生成されます。

私が実行しているコマンド パラメーターの全文と、.runsettings ファイルの内容を以下で共有しています。どこで何か間違ったことをしているのですか?

指示:

vstest.console.exe "C:\Xyz.Tests\bin\Debug\netcoreapp2.0\Xyz.Tests.dll" /InIsolation /EnableCodeCoverage /settings:CodeCoverage.runsettings

CodeCoverage.runsettingsファイルの内容:

<RunSettings>
<DataCollectionRunSettings>
  <DataCollectors>
    <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" enabled="false">
      <Configuration>
        <CodeCoverage>
        </CodeCoverage>
      </Configuration>
    </DataCollector>
  </DataCollectors>
</DataCollectionRunSettings>
</RunSettings>

生成されたコード カバレッジ レポートの画像: ここに画像の説明を入力

4

1 に答える 1

3

私は同じ動作に直面しましたが、幸いなことに解決策を見つけました。

Visual Studio テスト タスクを開き、次の操作を行います。

  • Code coverage enabledフラグのチェックを外す
  • --collect:"Code Coverage"その他のコンソールオプションを入れる
  • テスト済みのクラスと以下を含む、プロジェクトの.csprojファイルを編集します。

    セクション<DebugType>full</DebugType>に追加<PropertyGroup>

    コード カバレッジの結果で moq.dll を回避するには:

    .runsettings ファイルのセクション<ModulePath>.*moq.dll</ModulePath>に追加<ModulePaths> -> <Exclude>

    これが私の.runsettingsです

    <?xml version="1.0" encoding="utf-8"?>
    <RunSettings>
      <RunConfiguration>
        <MaxCpuCount>0</MaxCpuCount>
      </RunConfiguration>
      <DataCollectionRunSettings>
        <DataCollectors>
          <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
            <Configuration>
              <CodeCoverage>
                <!-- Match assembly file paths: -->
                <ModulePaths>
                  <Include>
                    <ModulePath>.*\.dll$</ModulePath>
                    <ModulePath>.*\.exe$</ModulePath>
                  </Include>
                  <Exclude>
                    <ModulePath>.*moq.dll</ModulePath>
                    <ModulePath>.*CPPUnitTestFramework.*</ModulePath>
                    <ModulePath>.*TestAdapter.*</ModulePath>
                  </Exclude>
                </ModulePaths>
              </CodeCoverage>
            </Configuration>
          </DataCollector>
        </DataCollectors>
      </DataCollectionRunSettings>
    </RunSettings>
    

    そして、 https://developercommunity.visualstudio.com/content/problem/92905/net-core-unit-testing-code-coverage.htmlリンクをチェックしてください

    于 2018-02-12T12:51:54.323 に答える