首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动测试运行被中止。原因:

活动测试运行被中止。原因:
EN

Stack Overflow用户
提问于 2018-09-06 14:58:24
回答 1查看 1.9K关注 0票数 1

我试图添加一个.runsettings文件,以便将测试项目排除在代码覆盖率计算之外。所有操作都很好,直到我添加了DataCollector部分,然后我得到了错误消息“活动测试运行被中止了。

如果删除.runsettings文件运行良好,但不收集代码覆盖率信息,如果我在输出窗口中包含了错误的it日志,并且不返回代码覆盖率信息,那么我已经将文件降到了最低限度。如果我不使用.runsettings文件,它将在没有错误的情况下运行并返回代码覆盖率信息。

我正在使用VS 2017 15.8.2 (也尝试了15.9.0预览1.0),测试是nUnit。

代码语言:javascript
复制
<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>
        <ModulePaths>
          <Include></Include>
          <Exclude></Exclude>
        </ModulePaths>

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

      </CodeCoverage>
    </Configuration>
  </DataCollector>
EN

回答 1

Stack Overflow用户

发布于 2019-01-23 11:37:36

如果您正在使用自定义设置进行代码覆盖,我们建议您继续使用以下部分

代码语言:javascript
复制
<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>
              <Exclude>
                 <ModulePath>.*nunit.*</ModulePath>
              </Exclude>
           </ModulePaths>
           <UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
           <AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
           <CollectFromChildProcesses>True</CollectFromChildProcesses>
           <CollectAspDotNet>False</CollectAspDotNet>
           <Functions>
              <Exclude>
                 <Function>^std::.*</Function>
                 <Function>^ATL::.*</Function>
                 <Function>.*::__GetTestMethodInfo.*</Function>
                 <Function>.*__CxxPureMSILEntry.*</Function>
                 <Function>^Microsoft::VisualStudio::CppCodeCoverageFramework::.*</Function>
                 <Function>^Microsoft::VisualStudio::CppUnitTestFramework::.*</Function>
                 <Function>.*::YOU_CAN_ONLY_DESIGNATE_ONE_.*</Function>
                 <Function>^__.*</Function>
                 <Function>.*::__.*</Function>
              </Exclude>
           </Functions>
           <Attributes>
              <Exclude>
                 <Attribute>^System.Diagnostics.DebuggerHiddenAttribute$</Attribute>
                 <Attribute>^System.Diagnostics.DebuggerNonUserCodeAttribute$</Attribute>
                 <Attribute>^System.Runtime.CompilerServices.CompilerGeneratedAttribute$</Attribute>
                 <Attribute>^System.CodeDom.Compiler.GeneratedCodeAttribute$</Attribute>
                 <Attribute>^System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute$</Attribute>
                 <Attribute>^Microsoft.VisualStudio.TestPlatform.TestSDKAutoGeneratedCode.*</Attribute>
              </Exclude>
           </Attributes>
           <PublicKeyTokens>
              <Exclude>
                 <PublicKeyToken>^B77A5C561934E089$</PublicKeyToken>
                 <PublicKeyToken>^B03F5F7F11D50A3A$</PublicKeyToken>
                 <PublicKeyToken>^31BF3856AD364E35$</PublicKeyToken>
                 <PublicKeyToken>^89845DCD8080CC91$</PublicKeyToken>
                 <PublicKeyToken>^71E9BCE111E9429C$</PublicKeyToken>
                 <PublicKeyToken>^8F50407C4E9E73B6$</PublicKeyToken>
                 <PublicKeyToken>^E361AF139669C375$</PublicKeyToken>
              </Exclude>
           </PublicKeyTokens>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>

由于您正在运行基于nUnit的测试,所以我添加了部分以将nUnit dll排除在覆盖范围之外。

我添加的其他部分包括:

  • 我们排除的某些属性,例如DebuggerHiddenAttribute、CompilerGeneratedAttribute等
  • 使用某些公钥令牌签名的程序集,通常由Microsoft使用。
  • 一些默认的C++函数(库),例如std、ATL等。

由于我们进行运行时分析,这些都会导致错误,有时会导致崩溃。

有关如何配置覆盖率运行设置的详细信息,请遵循https://learn.microsoft.com/en-us/visualstudio/test/customizing-code-coverage-analysis?view=vs-2017

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52206976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档