Извлечь отчет о покрытии кода из файла .trx - PullRequest
0 голосов
/ 31 октября 2019

У меня есть приложение ac # windows, разработанное в .net framework 4.6.
Я выполнил приведенную ниже команду, используя vstest.console.exe, чтобы сгенерировать файл .trx, содержащий информацию о покрытии кода и тестовых случаях.
MSTest BambooParser может прочитать файл trx и прочитать количество тестов, пройденных и не пройденных.

Как прочитать тот же файл, чтобы понять отчет о покрытии кода?
Я просмотрел файл trx, открыв его в блокноте. В конце есть раздел, содержащий некоторую информацию о покрытии кода.

<ResultSummary outcome="Completed">
   <Counters total="91" executed="91" passed="91" failed="0" error="0" timeout="0" aborted="0" inconclusive="0" passedButRunAborted="0" notRunnable="0" notExecuted="0" disconnected="0" warning="0" completed="0" inProgress="0" pending="0" />
   <CollectorDataEntries>
      <Collector agentName="mysystem" uri="datacollector://microsoft/CodeCoverage/2.0" collectorDisplayName="Code Coverage">
         <UriAttachments>
            <UriAttachment>
               <A href="mysystem\cpsvizuser_mysystem 2019-10-31 05_36_09.coverage" />
            </UriAttachment>
         </UriAttachments>
      </Collector>
   </CollectorDataEntries>
</ResultSummary>

Там не упоминается процент покрытия кода. Может ли кто-нибудь помочь в извлечении значения покрытия кода из файла .trx. Мне нужно сгенерировать XML-файл и опубликовать результаты в sonarqube. Любая помощь в этом вопросе полезна.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2019

Файл .coverage, указанный в UriAttachment, является двоичным файлом, содержащим данные покрытия кода. Вы можете преобразовать его в формат XML с помощью инструмента CodeCoverage.exe, который поставляется вместе с VS Enterprise (предположительно, того же, который вы использовали для сбора данных покрытия в первую очередь).

См. эту полезную страницу для получения дополнительной информации.

0 голосов
/ 31 октября 2019

Вам нужно будет использовать другой пакет для расчета покрытия кода. У меня был успех с Coverlet , бесплатным решением с открытым исходным кодом. Существует также множество коммерческих решений, таких как NCover или JetBrain's dotCover .

...