【问题标题】:dotCover and xUnit on a .net Core project.net Core 项目上的 dotCover 和 xUnit
【发布时间】:2018-04-09 03:20:07
【问题描述】:

我正在尝试从 dotCover 生成代码覆盖率报告文件,而我的测试是使用 xUnit 完成的。

我运行的命令是dotCover analyse coverage.xml

我的coverage.xml 文件如下所示:

<AnalyzeParams>
  <TargetExecutable>C:\Users\my.name\.nuget\packages\dotnet-xunit\2.3.0\tools\net452\xunit.console.exe</TargetExecutable>
  <TargetArguments>Factures.Services.dll</TargetArguments>
  <TargetWorkingDir>Services\Factures.Services.Tests\bin\Debug\netcoreapp2.0</TargetWorkingDir>
  <Output>dotCover.html</Output>
  <ReportType>html</ReportType>
</AnalyzeParams>

但是我收到以下错误消息:

could not find xunit.dll (v1) or xunit.execution.*.dll (v2) in C:\...\Services\Factures.Services.Tests\bin\Debug\netcoreapp2.0

【问题讨论】:

    标签: .net-core xunit dotcover dotnet-cli


    【解决方案1】:

    请尝试以下 coverage.xml 代替:

    <AnalyzeParams>
      <TargetExecutable>C:\Program Files\dotnet\dotnet.exe</TargetExecutable>
      <TargetArguments>test Factures.Services.csproj</TargetArguments>
      <TargetWorkingDir>Services\Factures.Services.Tests\</TargetWorkingDir>
      <Output>dotCover.html</Output>
      <ReportType>html</ReportType> 
    </AnalyzeParams>
    

    执行保持dotCover analyse coverage.xml

    【讨论】:

    • Tks,它确实运行了 whitout 错误但生成的 html 文件什么也没有(当然我的项目中有测试)。
    • 我认为我有一个空结果文件的原因是我使用的是 xUnit 而不是 MsTest 并且dotnet test 没有运行 xUnit 测试..
    • 确实,当我从 cmd 窗口运行 dotnet test 时,它显示“没有可用的测试”。
    • 对我来说,它可以在 csproj 文件中没有任何引用的情况下工作。但似乎你找到了让它运行的方法。很高兴我能帮忙:)
    【解决方案2】:

    感谢@fabian-s 帮助我们找到解决方案。

    如果您的测试项目 csproj 文件中有以下行(根据 xUnit doc):

    <DotNetCliToolReference Include="dotnet-xunit" Version="2.3.1" />
    

    然后为每个测试项目使用以下内容,然后合并您的报告(请参阅 dotCover doc):

    <AnalyzeParams>
      <TargetExecutable>C:\Program Files\dotnet\dotnet.exe</TargetExecutable>
      <TargetArguments>xunit</TargetArguments>
      <TargetWorkingDir>Services\Factures.services.test</TargetWorkingDir>
      <Output>dotCover.html</Output>
      <ReportType>html</ReportType> 
    </AnalyzeParams>
    

    但是,如果您在每个测试项目 csproj 文件中都有以下行(根据 doc 女士):

    <PackageReference Include="xunit.runner.visualstudio" Version="2.3.1" />
    

    然后将以下内容用于整个解决方案:

    <AnalyzeParams>
      <TargetExecutable>C:\Program Files\dotnet\dotnet.exe</TargetExecutable>
      <TargetArguments>test</TargetArguments>
      <TargetWorkingDir>.</TargetWorkingDir>
      <Output>dotCover.html</Output>
      <ReportType>html</ReportType> 
    </AnalyzeParams>
    

    【讨论】:

      猜你喜欢
      • 2018-05-27
      • 1970-01-01
      • 1970-01-01
      • 2012-12-11
      • 2016-10-18
      • 2019-06-08
      • 2016-05-01
      • 1970-01-01
      • 2021-11-05
      相关资源
      最近更新 更多