簡體   English   中英

Coverlet 生成的 coverage.cobertura.xml 文件名中的空源完整路徑

[英]Coverlet generated coverage.cobertura.xml empty source full path in filename

它在我的大多數項目中都運行良好,但我有一個coverage.cobertura.xml生成的項目如下:

<?xml version="1.0" encoding="utf-8"?>
<coverage line-rate="1" branch-rate="0.8" version="1.9" timestamp="1648222473" lines-covered="17" lines-valid="17" branches-covered="8" branches-valid="10">
  <sources>
    <source>/</source>
  </sources>
  <packages>
    <package name="LoggerService" line-rate="1" branch-rate="0.8" complexity="10">
      <classes>
        <class name="Tickett.ObjectRenderer" filename="builds/tickett_dlls/logger_service/LoggerService/ObjectRenderer.cs" line-rate="1" branch-rate="0.8" complexity="10">

而不是像這樣的東西:

<?xml version="1.0" encoding="utf-8"?>
<coverage line-rate="1" branch-rate="0.8" version="1.9" timestamp="1648222473" lines-covered="17" lines-valid="17" branches-covered="8" branches-valid="10">
  <sources>
    <source>/builds/tickett_dlls/logger_service/</source>
  </sources>
  <packages>
    <package name="LoggerService" line-rate="1" branch-rate="0.8" complexity="10">
      <classes>
        <class name="Tickett.ObjectRenderer" filename="LoggerService/ObjectRenderer.cs" line-rate="1" branch-rate="0.8" complexity="10">

我的命令看起來像:

dotnet test -v=normal /p:CollectCoverage=true --logger "junit;LogFilePath=TestOutput.xml" --collect:"XPlat Code Coverage

我已經比較了我能想到的所有東西,但我一生都無法弄清楚是什么導致了這種細微的差異(我認為這導致 GitLab 無法解釋報告)

我通過深入研究被單的來源來弄清楚。 我認為是這一行:

https://github.com/coverlet-coverage/coverlet/blob/ebbf0424495de04e334beaabf626244fe9b80b06/src/coverlet.core/Reporters/CoberturaReporter.cs#L189

tldr; 我的項目只包含一個要分析的 class,看起來確定基本路徑的過程至少需要 2 個類。

我會:

  • 從測試覆蓋范圍中刪除我目前為其中一個類設置的排除項
  • 將目前正在分析的唯一 class 一分為二; 或者
  • 在生成報告后添加一個簡單的sed命令以“修復它”

我已經為項目中的現有問題添加了注釋,以查看它是否應該被視為錯誤以及我們是否/如何改進它的處理方式(可能只允許參數/參數對source “硬編碼”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM