Saltar al contenido

¿Cómo uso OpenCover y ReportGenerator para ver los resultados de cobertura de prueba unitaria?

Posterior a de esta extensa selección de información resolvimos este dilema que pueden tener algunos lectores. Te brindamos la respuesta y deseamos resultarte de gran apoyo.

Solución:

no necesita agregarlos a un proyecto en particular

También uso el generador de informes y la cubierta abierta para generar resultados de cobertura de prueba. Este es el script que uso para generar la cobertura de código usando opencover

“C:Archivos de programa (x86)OpenCoverOpenCover.Console.exe” -registrar:usuario -target:”C:Archivos de programa (x86)Microsoft Visual Studio 10.0Common7IDEmstest.exe” -targetargs :”/noisolation /testcontainer:”C:\binDebug.dll” /resultsfile:C:ReportsMSTest.trx” -filter:”+[]” -mergebyhash -salida:C:InformesMSTestprojectCoverageReport.xml

Tenga en cuenta que si su argumento necesita escapar de las comillas, es decir, pasar argumentos con espacios a ese proceso de destino, entonces puede usar "p.ej: -targetargs:"c:program files"

Este es el script que uso para ejecutar el generador de informes.

C:ReportGeneratorbinReportGenerator.exe -reports:”C:ReportsMSTestprojectCoverageReport.xml” -targetdir:”C:ReportsCodeCoverage”

Espero que esto ayude.

Después de varios años de usar estas herramientas de código abierto, finalmente creé una publicación completa sobre cómo usar OpenCover y ReportCover para generar métricas de cobertura de pruebas unitarias.

La publicación describe cómo crear el .bat archivo y los comandos necesarios para hacer lo siguiente:

  • Genere un informe de salida de métricas de prueba unitaria usando OpenCover
  • Generando un .htm informe usando ReportGenerator
  • Analizar los datos de salida para interpretar las métricas de cobertura de pruebas unitarias

Uso de OpenCover y ReportGenerator para obtener métricas de cobertura de código de pruebas unitarias en .NET

Gracias @atconway por tu tutorial. Actualicé un poco su secuencia de comandos .bat para facilitar futuras actualizaciones y cambios en el proyecto.

Resumiendo, para usar OpenCover con NUnit, debe agregar a su proyecto estos nugets:

  • AbrirCubierta
  • NUnit.ConsoleRunner
  • Generador de informes por Daniel Palme

y aquí está el archivo .bat actualizado. Para ejecutarlo, simplemente edite la “configuración” y guarde el script como archivo .bat en la raíz de su proyecto.

@echo off
REM ** Be sure to install these nugets:
REM ** NUnit.ConsoleRunner
REM ** OpenCover
REM ** ReportGenerator
REM **
REM ** All paths should be entered without quotes

REM ** SET TestResultsFileProjectName=CalculatorResults
SET TestResultsFileProjectName=

REM ** SET DLLToTestRelativePath=CalculatorbinDebugMyCalc.dll
SET DLLToTestRelativePath=

REM ** Filters Wiki https://github.com/opencover/opencover/wiki/Usage
REM ** SET Filters=+[Calculator]* -[Calculator]CalculatorTests.*
SET Filters=

SET OpenCoverFolderName=OpenCover.4.6.519
SET NUnitConsoleRunnerFolderName=NUnit.ConsoleRunner.3.6.1
SET ReportGeneratorFolderName=ReportGenerator.2.5.6

REM *****************************************************************

REM Create a 'GeneratedReports' folder if it does not exist
if not exist "%~dp0GeneratedReports" mkdir "%~dp0GeneratedReports"

REM Remove any previous test execution files to prevent issues overwriting
IF EXIST "%~dp0%TestResultsFileProjectName%.trx" del "%~dp0%TestResultsFileProjectName%.trx%"

REM Remove any previously created test output directories
CD %~dp0
FOR /D /R %%X IN (%USERNAME%*) DO RD /S /Q "%%X"

REM Run the tests against the targeted output
call :RunOpenCoverUnitTestMetrics

REM Generate the report output based on the test results
if %errorlevel% equ 0 (
 call :RunReportGeneratorOutput
)

REM Launch the report
if %errorlevel% equ 0 (
 call :RunLaunchReport
)
exit /b %errorlevel%

:RunOpenCoverUnitTestMetrics
"%~dp0packages%OpenCoverFolderName%toolsOpenCover.Console.exe" ^
-register:user ^
-target:"%~dp0packages%NUnitConsoleRunnerFolderName%toolsnunit3-console.exe" ^
-targetargs:"--noheader "%~dp0%DLLToTestRelativePath%"" ^
-filter:"%Filters%" ^
-mergebyhash ^
-skipautoprops ^
-excludebyattribute:"System.CodeDom.Compiler.GeneratedCodeAttribute" ^
-output:"%~dp0GeneratedReports%TestResultsFileProjectName%.xml"
exit /b %errorlevel%

:RunReportGeneratorOutput
"%~dp0packages%ReportGeneratorFolderName%toolsReportGenerator.exe" ^
-reports:"%~dp0GeneratedReports%TestResultsFileProjectName%.xml" ^
-targetdir:"%~dp0GeneratedReportsReportGenerator Output"
exit /b %errorlevel%

:RunLaunchReport
start "report" "%~dp0GeneratedReportsReportGenerator Outputindex.htm"
exit /b %errorlevel%

Comentarios y valoraciones del post

No se te olvide compartir este ensayo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *