c# - 如何从代码覆盖率中排除 MVC Razor View ?

标签 c# asp.net-mvc model-view-controller code-coverage visual-studio-test-runner

我想从 ADO 中的覆盖率报告代码中排除 MVC View (即具有 C# 代码的 cshtml 文件)。

我尝试过的是:

  1. [ExcludeFromCodeCoverage] 属性添加到 cshtml

  2. runsettings 文件中添加对 *.Views 程序集的排除:

    <ModulePath>.*Views.*</ ModulePath>
    

都没有效果。有什么办法可以实现这一点吗?

最佳答案

一旦我能够识别 runsettings 文件 ( https://learn.microsoft.com/en-us/visualstudio/test/configure-unit-tests-by-using-a-dot-runsettings-file?msclkid=14b6671abb6811ec9283acde13b7ff4e&view=vs-2022#specify-a-run-settings-file-in-the-ide ),我就可以使用它来排除正在预编译的 View :

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <DataCollectionRunSettings>
    <DataCollectors>
      <DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
        <Configuration>
          <CodeCoverage>

            <ModulePaths>
              <Include>
                <!-- Make sure we include all the project source -->
                <ModulePath>.*your.project.library.name.dll</ModulePath>
                <ModulePath>.*your.project.name.dll</ModulePath>
              </Include>
            </ModulePaths>

            <Sources>
              <Exclude>
                <Source>.*cshtml.*</Source> <!-- Ignore the pre-compiled views for code coverage -->
              </Exclude>
            </Sources>

            <!-- We recommend you do not change the following values: -->
            <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
            <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
            <CollectFromChildProcesses>True</CollectFromChildProcesses>
            <CollectAspDotNet>False</CollectAspDotNet>

          </CodeCoverage>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>

关于c# - 如何从代码覆盖率中排除 MVC Razor View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71660331/

相关文章:

c# - MVC 部分 View 、GET 和路由

将 mvc_pattern 库更新到最新版本 6.4.0 后,Flutter 获取上下文时出错

c# - 当从 View (Ajax)发送请求时,即使我使用 [FromBody] C#, Controller 中也收​​到 NULL 对象

c# - 一些破坏性的东西 - WPF + DependencyProperties

c# - 如何使用 C# 截断表

asp.net - 为什么 Asp.net mvc 应用程序不能在 Asp.Net Classic 应用程序池上运行?

model-view-controller - 在 MVC 架构中实现服务层

c# - 在 ASP.NET MVC 中管理用户的最佳方式是什么

c# - 为什么我的事件日志源一直放在注册表中的 "Application"而不是 <log> 下?

asp.net-mvc - MVC5 Web 应用程序中的 AD 组授权