Descargue esta extensión desde Visual Studio Market Place (frente a 2019), Visual Studio Market Place (frente a 2022) o descárguela desde las versiones. Las versiones anteriores se pueden obtener desde aquí.
Para .Net: que los adaptadores de prueba sean paquetes nuget. Por ejemplo, la extensión NUnit Test Adapter no es suficiente.
Fine Code Coverage proporciona cobertura de código utilizando una de 3 herramientas de cobertura diferentes. En versiones anteriores se utilizaron dos herramientas de cobertura, OpenCover y Coverlet, a las que nos referiremos como "cobertura antigua".
Microsoft ahora proporciona una solución de cobertura gratuita que puede elegir usar configurando la opción de enumeración RunMsCodeCoverage de Cobertura de código fino de Visual Studio. Esta será probablemente la herramienta de cobertura preferida por la mayoría de los desarrolladores. Actualmente se encuentra en Beta.
Con la cobertura anterior, FCC podía proporcionar una abstracción sobre las opciones de exclusión/inclusión de cada herramienta. Esta abstracción no funciona para la cobertura de código MS.
Por lo tanto, encontrará que existen opciones de configuración independientes para la cobertura Ms frente a la cobertura anterior y opciones que son comunes a ambas. Se pueden lograr exclusiones e inclusiones a nivel de ensamblaje; consulte ExcludeAssemblies e IncludeAssemblies. La configuración se determina (principalmente) a partir de las opciones de Visual Studio, los archivos finecodecoverage-settings.xml y las propiedades msbuild del proyecto. Todas estas configuraciones son opcionales. Para las opciones que tienen un alcance de proyecto, estas configuraciones forman una jerarquía donde los niveles inferiores anulan o, para las colecciones, anulan o fusionan con el nivel superior. Esto se describe en detalle más adelante.
Independientemente de la herramienta de cobertura empleada, el proceso comienza cuando la FCC reacciona al explorador de pruebas en Visual Studio. Una de las 3 herramientas de cobertura proporciona los resultados de cobertura y los resultados se pueden abrir desde los botones en la ventana de la herramienta de cobertura de código fino. Esta cobertura no es dinámica y representa la cobertura obtenida desde la última vez que ejecutó pruebas. Cuando la cobertura queda desactualizada, puede hacer clic en el botón 'FCC Clear UI' en Herramientas o ejecutar la cobertura nuevamente.
Los detalles de cómo la FCC está progresando con la cobertura del código se pueden encontrar en la pestaña Registro de cobertura en la ventana de la herramienta de cobertura de código fino con registros más detallados en el panel de la ventana de salida de la FCC. Si tiene problemas, proporcionar los registros desde la ventana de salida le ayudará a comprender la naturaleza del problema.
Presente un único informe unificado en la ventana de herramientas de cobertura de código fino. El informe muestra la cobertura de líneas y sucursales y los puntos críticos de riesgo con la posibilidad de abrir sus archivos de clase.
Márgenes de colores para indicar el estado de cobertura de su código. Las líneas de código instrumentadas (incluidas y analizables) están cubiertas, descubiertas o parcialmente cubiertas, lo que significa que no se ejecutaron todas las ramas.
FCC proporciona el concepto de regiones sucias donde el código previamente instrumentado ya no mostrará el estado instrumentado una vez que haya cambiado el código.
Para C# y Visual Basic proporciona más información de cobertura:
FCC también le permite ver el código que no se incluyó en la cobertura y las nuevas líneas que se agregaron desde la última ejecución de la cobertura.
Tanto el color de línea sucia como el de línea nueva deben estar activados en las opciones.
Si lo desea, las líneas también se pueden resaltar configurando las opciones disponibles de Visual Studio. Siga leyendo para obtener más detalles.
Los colores se pueden controlar a través de Visual Studio/Herramientas/Opciones/Entorno/Fuentes y colores/Editor de texto/Elementos de visualización:
Para Visual Studio Community, Professional y Enterprise puede usar la configuración
Cobertura Área Tocada FCC
Cobertura Área parcialmente tocada FCC
Cobertura Área no tocada FCC
Cobertura Área Sucia FCC
Cobertura Área Nuevas Líneas FCC
Cobertura Área No Incluida FCC
Para las versiones que suministran los siguientes elementos, FCC los usará de forma predeterminada sobre los elementos FCC equivalentes para que se puedan usar los colores definidos en los temas. Si desea ser coherente con los 5 elementos disponibles, puede configurar UseEnterpriseFontsAndColors en falso.
Cobertura Área no tocada
Cobertura Área parcialmente tocada
Área tocada de cobertura
Puede desactivar el color del editor configurando la opción de Visual Studio EditorCoverageColouringMode en Desactivado. También puede configurar la opción en DoNotUseRoslynWhenTextChanges si hay un problema de rendimiento. Al hacerlo, la coloración de las nuevas líneas no será tan buena. Si cambia a una de las opciones de EditorCoverageColouringMode, deberá volver a ejecutar la cobertura.
Puede alternar el color del editor. FCC agrega un botón de menú, Alternar indicadores, en el menú Herramientas. También puede crear un método abreviado de teclado: Herramientas/Opciones/Entorno/Teclado, mostrar comandos que contengan "ToggleIndicators".
Para los componentes Blazor con bloques @code, se pueden generar líneas de cobertura fuera de estas regiones. Cuando el árbol de sintaxis de Roslyn esté disponible para la FCC, puede configurar la opción BlazorCoverageLinesFromGeneratedSource en verdadero para limitar las líneas de cobertura en el archivo .razor a aquellas en la fuente generada.
FCC rastrea el editor de Visual Studio y guarda esta información cuando se cierra un archivo. Si al volver a abrir un archivo el texto ha cambiado fuera de la ventana del documento, no habrá marcas de cobertura para este archivo ya que no se espera que las líneas de cobertura sean correctas.
Tampoco habrá marcas de editor si edita un archivo mientras la FCC recopila cobertura.
Con la cobertura anterior, la FCC necesitaba copiar su dll de prueba y sus dependencias y ejecutar OpenCover o Coverlet en esos archivos. Esto no es necesario con la cobertura de código ms. La cobertura anterior esperaría hasta que finalizaran las pruebas antes de iniciar la herramienta de cobertura para volver a ejecutar todas las pruebas. Esto no es necesario con la cobertura de código ms. La antigua cobertura se basaba en cada prueba. La cobertura del código MS es la cobertura de las pruebas que seleccione en el explorador de pruebas.
¡Soporta C++! Tenga en cuenta que FCC no se ha probado adecuadamente con proyectos de C++, pero con una clase de C++ simple, probada con Google Test, FCC proporciona cobertura.
En primer lugar, debe cambiar la opción RunMsCodeCoverage de No.
La cobertura de código MS requiere un archivo runsettings que esté configurado adecuadamente para la cobertura de código. Esto requiere que tenga el paquete de cobertura de código ms y lo haya señalado con el elemento TestAdaptersPaths, además de especificar el recopilador de datos ms. Las exclusiones e inclusiones también se especifican en la configuración de ejecución. No creo que la documentación sea lo suficientemente clara sobre cómo funciona esto, por lo que es posible que desees analizar este problema.
La FCC no le exige que haga esto. Si no proporciona una configuración de ejecución y RunMsCodeCoverage es Sí, entonces la FCC generará una y escribirá la entrada necesaria en el archivo del proyecto.
Tenga en cuenta que tener un archivo de proyecto de prueba abierto en Visual Studio mientras se ejecutan las pruebas puede generar una advertencia de conflicto cuando la FCC elimina la entrada al final de la prueba. Si RunMsCodeCoverage es IfInRunSettings, entonces si el proyecto tiene configuraciones de ejecución que incluyen el elemento recopilador de datos ms configurado correctamente, la FCC procesará los resultados recopilados.
FCC incluye el paquete de cobertura de código ms y creará el archivo runsettings necesario para cada proyecto de prueba que se ejecute desde la ventana del explorador de pruebas. Las exclusiones e inclusiones procederán de los ajustes combinados, de forma similar a las coberturas antiguas. Como la cobertura del código de MS utiliza expresiones regulares y tiene diferentes métodos de exclusión/inclusión para Coverlet y OpenCover, existen opciones de Visual Studio específicas de MS y elementos asociados.
Como FCC proporciona un archivo runsettings para cada proyecto de prueba (si no ha proporcionado una solución amplia o específica del proyecto), debe escribir el elemento RunSettingsFilePath en el archivo del proyecto.
Aunque la FCC borra el valor de este elemento del archivo del proyecto, todavía está presente.
FCC crea la configuración de ejecución a partir de una plantilla mediante el reemplazo de cadenas. Si lo desea, puede proporcionar sus propias plantillas. FCC buscará fcc-ms-runsettings-template.xml en el directorio del proyecto o en el directorio de la solución. Su plantilla debe ser un documento xml válido, pero no es necesario que proporcione todos los elementos de configuración de ejecución. La FCC agregará los elementos reemplazables ResultsDirectory y TestAdaptersPaths (y el elemento contenedor RunConfiguration si es necesario) si no están presentes. La FCC también agregará los elementos reemplazables ms DataCollector/Configuración/CodeCoverage si no están presentes. También agregará los elementos CodeCoverage recomendados de no exclusión/inclusión AllowLowIntegrityProcesses, CollectFromChildProcesses, CollectAspDotNet y UseVerifiableInstrumentation si no se proporcionan. UseVerifiableInstrumentation será falso para .Net Framework. Para ver la configuración de ejecución generada, utilice el elemento RunSettingsFilePath en el archivo del proyecto.
Para una plantilla personalizada, que proporciona sus propios elementos que de otro modo habría proporcionado la FCC, para participar en el reemplazo de la plantilla debe agregar cadenas del tipo %fcc_replace%.
Las exclusiones e inclusiones siguen el formato "%fcc_modulepaths_exclude%". Para que la FCC proporcione la ruta de cobertura del código ms proporcionada por la FCC a TestAdaptersPaths, utilice %fcc_testadapter%.
También es posible utilizar su propio archivo runsettings y hacer que la FCC lo agregue y lo reemplace. La FCC se asegurará de que el elemento TestAdaptersPaths esté presente, así como el recopilador de datos ms. A diferencia de una plantilla, si el recopilador de datos ms está presente, al xml solo se le aplica el reemplazo.
La cobertura de código MS proporciona un elemento de configuración/cobertura de código predeterminado si no se proporciona. También agregará algunas exclusiones predeterminadas si no están presentes o las fusionará a menos que agregue el atributo mergeDefaults='false'. Por ejemplo, los atributos excluyen ExcludeFromCodeCoverageAttribute. Si está interesado, consulte ...AppDataLocalFineCodeCoveragemsCodeCoverage_version_buildnetstandard1.0Microsoft.VisualStudio.TraceDataCollector.dll y DynamicCoverageDataCollector.
Verifique la solución de problemas antes de informar un problema.
Los archivos DLL se copian en una subcarpeta de la carpeta de salida del proyecto, lo que puede afectar sus pruebas. La alternativa es establecer la opción AdjacentBuildOutput en verdadero. La cobertura la proporciona OpenCover para proyectos de estilo antiguo y Coverlet para proyectos SDK de nuevo estilo. Aunque la FCC proporciona una abstracción sobre ambos para que sea posible ignorar las diferencias entre los dos, hay circunstancias en las que es importante conocer la herramienta de cobertura que se ejecutará. Esto es más evidente cuando se utiliza Coverlet; siga leyendo para conocer los detalles.
El otro escenario sería cuando desee utilizar una versión específica de la herramienta de cobertura. Esto se puede configurar.
Las herramientas de cobertura que aprovecha la FCC se instalan de forma predeterminada en el directorio FineCodeCoverage dentro de Environment.SpecialFolder.LocalApplicationData
. Esto se puede cambiar con la opción ToolsDirectory Visual Studio. Asegúrese de que este directorio que lo contiene exista y, al reiniciar, las herramientas se instalarán en él.
Ejecute una(s) prueba(s) unitaria(s) y...
La jerarquía es la siguiente:
a) Opciones de Visual Studio
b) archivos finecodecoverage-settings.xml
Estos se encuentran subiendo por la estructura de directorios desde el directorio del proyecto. Al aplicar el atributo topLevel='true' al elemento raíz, la caminata se detiene.
Dado finecodecoverage-settings.xml en el directorio del proyecto y finecodecoverage-settings.xml en el directorio de la solución, la jerarquía es:
Opciones de Visual Studio
Nivel de solución finecodecoverage-settings.xml
Nivel de proyecto finecodecoverage-settings.xml
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
c) archivo de proyecto msbuild
Hay dos formas de proporcionar estos ajustes. Directamente en el archivo del proyecto
<PropertyGroup Label="FineCodeCoverage">
<Enabled>
True
</Enabled>
<Exclude>
[ThirdParty.*]*
[FourthParty]*
</Exclude>
<Include>
[*]*
</Include>
<ExcludeByFile>
**/Migrations/*
**/Hacks/*.cs
</ExcludeByFile>
<ExcludeByAttribute>
MyCustomExcludeFromCodeCoverage
</ExcludeByAttribute>
<IncludeTestAssembly>
True
</IncludeTestAssembly>
<ModulePathsExclude>
.*Fabrikam.Math.UnitTest.dll
</ModulePathsExclude>
<!-- and more -->
</PropertyGroup>
Con el elemento FineCodeCoverage.
<PropertyGroup>
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
</PropertyGroup>
Esto es necesario si almacena la configuración del proyecto fuera de su archivo de proyecto y usa msbuild Import.
También es necesario si desea que el elemento de configuración se fusione con el del nivel superior, ya que msbuild no admite atributos personalizados.
El valor predeterminado es sobrescribir cada propiedad de la colección. Esto se puede cambiar para todas las configuraciones configurando defaultMerge='true' en el elemento raíz.
Si proporciona el atributo de combinación en un elemento de configuración, se utilizará.
Esto no es transitivo.
<PropertyGroup>
<FCCExcludeFromCodeCoverage/>
</PropertyGroup>
<PropertyGroup>
<UseDataCollector/>
</PropertyGroup>
Coverlet tiene diferentes "controladores". En el pasado, Fine Code Coverage solo utilizaba el controlador de la consola Coverlet. Esto tiene algunos problemas asociados. Si encuentra una cobertura del 0 % o una cobertura inconsistente, ahora es posible cambiar al controlador del recopilador de datos. Este es el mejor controlador, pero no se puede utilizar para todos los proyectos. Por ahora, esto es optar por participar. En el futuro, la Cobertura del Código de Multas determinará el controlador apropiado. Consulte los documentos de Coverlet para obtener compatibilidad con la versión.
Tenga en cuenta que no es necesario agregar el paquete nuget coverlet.collector ya que la FCC lo proporciona internamente.
Fine Code Coverage utilizará el controlador del recopilador de datos en dos circunstancias:
La configuración del recopilador de datos de Coverlet se puede encontrar aquí. Si está utilizando la opción 2) anterior, las configuraciones comunes (exclusiones e inclusiones) se generarán a partir de las propiedades del proyecto (arriba) y las opciones globales de Visual Studio (ver a continuación), teniendo prioridad las propiedades del proyecto. Si está utilizando la opción 1), las opciones globales y de proyecto solo se usarán cuando un elemento de configuración de configuración común esté ausente y la opción RunSettingsOnly (consulte a continuación) se haya cambiado a falso.
Opción | Descripción |
---|---|
Común | |
EditorCoberturaColorearModo | Configúrelo en Desactivado o en DoNotUseRoslynWhenTextChanges si hay un problema de rendimiento. |
BlazorCoverageLinesFromGeneratedSource | Configúrelo en verdadero para limitar las líneas de cobertura en el archivo .razor a aquellas en la fuente generada (cuando esté disponible) |
MostrarEditorCobertura | Establecer en falso para deshabilitar todos los indicadores de cobertura del editor |
Mostrar cobertura en margen de glifo | Establecer en falso para evitar marcas de cobertura en el margen del glifo |
MostrarCoveredInGlyphMargin | Establecer en falso para evitar marcas cubiertas en el margen del glifo |
MostrarDescubiertoEnGlyphMargin | Establecer en falso para evitar marcas descubiertas en el margen del glifo |
Mostrar parcialmente cubierto en margen de glifo | Establecer en falso para evitar marcas parcialmente cubiertas en el margen del glifo |
MostrarDirtyInGlyphMargin | Establecer en verdadero para mostrar marcas sucias en el margen del glifo |
Mostrar nuevo en margen de glifo | Establecer en verdadero para mostrar nuevas marcas de línea en el margen del glifo |
Mostrar cobertura en descripción general Margen | Establecer en falso para evitar marcas de cobertura en el margen de descripción general |
MostrarCoveredInOverviewMargin | Establecer en falso para evitar marcas cubiertas en el margen de descripción general |
MostrarDescubiertoEnResumenMargen | Establecer en falso para evitar marcas descubiertas en el margen de descripción general |
Mostrar parcialmente cubierto en descripción general Margen | Establezca en falso para evitar marcas parcialmente cubiertas en el margen de descripción general |
MostrarDirtyInOverviewMargin | Establezca en verdadero para mostrar marcas sucias en el margen de descripción general |
Mostrar nuevo en descripción general Margen | Establezca en verdadero para mostrar nuevas marcas de línea en el margen de descripción general |
MostrarLíneaCoberturaDestacado | Establecer en verdadero para permitir resaltar la línea de cobertura |
MostrarLíneaCubiertoDestacado | Establecer en falso para evitar que se resalte la línea cubierta |
MostrarLíneaDescubiertoDestacado | Establecer en falso para evitar que se resalten líneas descubiertas |
MostrarLíneaParcialmenteCubiertoDestacado | Establecer en falso para evitar que se resalte la línea parcialmente cubierta |
MostrarLíneaSucioDestacado | Establecer en verdadero para mostrar resaltado de líneas sucias |
MostrarLíneaNuevoDestacado | Establecer en verdadero para mostrar resaltado de nueva línea |
UtiliceEnterpriseFontsAndColors | Establezca en falso para usar elementos de fuentes y colores FCC |
MostrarHerramientaVentanaBarra de herramientas | Configúrelo en falso para ocultar la barra de herramientas en la ventana de herramientas. Requiere reiniciar Visual Studio. La barra de herramientas tiene botones para visualizar el xml de Cobertura y los hotspots de riesgo. |
Nombre del directorio de salida de la solución FCC | Para que la salida fcc sea visible en una subcarpeta de su solución, proporcione este nombre |
HerramientasDirectorio | Carpeta a la que se copia la subcarpeta de herramientas. Ya debe existir. Requiere reiniciar VS. |
Umbral de complejidad ciclomática | Cuando la complejidad ciclomática excede este valor para un método, el método estará presente en la pestaña de puntos críticos de riesgo. |
Mesa De Cobertura Adhesiva | Establézcalo en verdadero para que la tabla de cobertura tenga una cabeza pegajosa. |
Clases con espacio de nombres | Configúrelo en falso para mostrar los tipos del informe en formato breve. Afecta la agrupación. |
Calificación del espacio de nombres | Controle la calificación de los tipos en el informe cuando NamespacedClasses sea verdadero. Totalmente calificado: siempre califica completamente. AlwaysUnqualified: siempre no calificado. UnqualifiedByNamespace: no calificado al agrupar por espacio de nombres. QualifiedByNamespaceLevel: omite las primeras partes del identificador de nivel de agrupación. Reduce el espacio manteniendo la singularidad. |
OcultarTotalmenteCubierto | Configúrelo en verdadero para ocultar clases, espacios de nombres y ensamblajes que estén completamente cubiertos. |
Ocultar0Cobertura | Configúrelo en verdadero para ocultar clases, espacios de nombres y ensamblajes que tengan una cobertura del 0%. |
Ocultar0Cubrible | Establezca en false para mostrar clases, espacios de nombres y ensamblados que no se pueden cubrir. |
Activado | Especifica si la salida de cobertura está habilitada o no. |
DeshabilitadoSin Cobertura | Establecer en falso para VS Opción habilitada = falso para no deshabilitar la cobertura |
Ejecutar cuando las pruebas fallan | De forma predeterminada, la cobertura se ejecuta cuando fallan las pruebas. Configúrelo en falso para evitar esto. No se puede utilizar junto con RunInParallel |
Ejecutar cuando las pruebas exceden | Especifique un valor para ejecutar solo la cobertura según la cantidad de pruebas en ejecución. No se puede utilizar junto con RunInParallel |
EjecutarMsCodeCoverage | Cambie a IfInRunSettings para recopilar solo con los ajustes de ejecución configurados. Sí para la generación de configuración de ejecución. |
Incluir ensamblaje de prueba | Especifica si se debe informar la cobertura del código del ensamblado de prueba. |
Incluir proyectos referenciados | Configúrelo en verdadero para agregar todos los proyectos a los que se hace referencia directamente a Incluir. |
Incluir asambleas | Proporcione una lista de ensamblajes para incluir en la cobertura. El nombre dll sin extensión se utiliza para hacer coincidir. |
Excluir ensamblajes | Proporcione una lista de ensamblajes para excluir de la cobertura. El nombre dll sin extensión se utiliza para hacer coincidir. |
Funda abierta/cobertor | |
Salida de compilación adyacente | Si sus pruebas dependen de su ruta, configúrelo en verdadero. |
Excluir | Filtrar expresiones para excluir módulos y tipos específicos (múltiples valores) |
Incluir | Filtrar expresiones para incluir módulos y tipos específicos (múltiples valores) |
Excluir por archivo | OpenCover utiliza * coincidencia de comodines. Coverlet utiliza sistema de archivos globbing |
Excluir por atributo | Excluir código atribuido a nivel de ensamblado, tipo y método. Agregue tipos de atributos completamente calificados o no calificados. |
Ejecutar en paralelo | De forma predeterminada, se ejecutan las pruebas OpenCover/Coverlet y luego se realiza la cobertura. Establezca en verdadero para ejecutar la cobertura inmediatamente |
cobertura de código ms | Cada uno de los siguientes es una serie de expresiones regulares que se transformarán en elementos de configuración de ejecución. Consulte |
ModulePathsExcluir | Excluir: coincide con los ensamblados especificados por el nombre del ensamblado o la ruta del archivo. |
ModulePathsIncluyen | Incluir: coincide con los ensamblados especificados por el nombre del ensamblado o la ruta del archivo. |
Nombres de empresaExcluir | Excluir: coincide con los ensamblados por el atributo Empresa. |
Nombres de empresaIncluir | Incluir: coincide con los ensamblados por el atributo Empresa. |
Exclusión de tokens de clave pública | Excluir: coincide con ensamblados firmados por el token de clave pública. |
Los tokens de clave pública incluyen | Incluir: coincide con ensamblados firmados por el token de clave pública. |
FuentesExcluir | Excluir: hace coincidir elementos por el nombre de ruta del archivo fuente en el que están definidos. |
FuentesIncluir | Incluir: hace coincidir elementos por el nombre de ruta del archivo fuente en el que están definidos. |
AtributosExcluir | Excluir: coincide con elementos que tienen el atributo especificado. Especifique el nombre completo del atributo. |
AtributosIncluir | Incluir: coincide con elementos que tienen el atributo especificado. Especifique el nombre completo del atributo. |
FuncionesExcluir | Excluir: hace coincidir procedimientos, funciones o métodos por nombre completo, incluida la lista de parámetros. |
FuncionesIncluyen | Incluir: relaciona procedimientos, funciones o métodos por nombre completo, incluida la lista de parámetros. |
Sobrecama | |
Ejecutar solo configuración | Especifique false para las opciones globales y de proyecto que se utilizarán para los elementos de configuración del recopilador de datos Coverlet cuando no se especifique en runsettings. |
CoverletCollectorDirectorioRuta | Especifique la ruta al directorio que contiene los archivos recopiladores de Coverlet si necesita una funcionalidad que la versión FCC no proporciona. |
CoverletConsolaLocal | Especifique verdadero para utilizar su propia instalación local de herramientas dotnet de la consola Coverlet. |
CoverletConsolaRuta personalizada | Especifique la ruta al archivo ejecutable de la consola Coverlet si necesita funciones que la versión FCC no proporciona. |
ColchaConsolaGlobal | Especifique verdadero para utilizar su propia instalación global de herramientas dotnet de la consola Coverlet. |
La configuración de "CoverletConsole" tiene prioridad Local/CustomPath/Global. | |
AbrirCubierta | |
AbrirCubiertaRegistro | Cambie del valor predeterminado si la determinación de la FCC de la ruta 32 o la ruta 64 es incorrecta. |
Objetivo de cubierta abierta | Proporcione su propio objetivo si es necesario. |
OpenCoverTargetArgs | Si proporciona su propio objetivo, también puede proporcionar argumentos adicionales. La FCC proporciona la ruta de la dll de prueba. |
OpenCoverCustomPath | Especifique la ruta para abrir el cover exe si necesita una funcionalidad que la versión FCC no proporciona. |
Umbral para la complejidad de la ruta N | Cuando la complejidad de npath excede este valor para un método, el método estará presente en la pestaña de puntos críticos de riesgo. |
UmbralParaPuntuaciónCrap | Cuando la puntuación de basura excede este valor para un método, el método estará presente en la pestaña de puntos críticos de riesgo. |
Probablemente quieras establecer IncludeReferencedProjects en verdadero. Esto asegurará que no obtenga cobertura para los marcos de prueba, solo su código.
Coverlet y OpenCover utilizan expresiones de filtro. Filtrar expresiones
comodines
* => coincide con cero o más caracteres Ejemplos
[*]* => Todos los tipos en todos los ensamblados.
[coverlet.*]Coverlet.Core.Coverage => La clase Coverage en el espacio de nombres Coverlet.Core que pertenece a cualquier ensamblado que coincida con coverlet.* (por ejemplo, coverlet.core)
[*]Coverlet.Core.Instrumentation.* => Todos los tipos que pertenecen al espacio de nombres Coverlet.Core.Instrumentation en cualquier ensamblado
[coverlet.*.tests]* => Todos los tipos en cualquier conjunto comenzando con coverlet. y terminando con .tests
Las opciones 'Excluir' e 'Incluir' se pueden usar juntas, pero 'Excluir' tiene prioridad.
La cobertura del código MS utiliza expresiones regulares. Puede incluir o excluir ensamblajes o tipos y miembros específicos del análisis de cobertura de código. Si la sección Incluir está vacía o se omite, se incluyen todos los ensamblados que están cargados y que tienen archivos PDB asociados. Si una asamblea o miembro coincide con una cláusula en la sección Excluir, entonces queda excluido de la cobertura del código. La sección Excluir tiene prioridad sobre la sección Incluir: si un ensamblaje aparece tanto en Incluir como en Excluir, no se incluirá en la cobertura del código.
Puede ignorar un método o una clase completa de la cobertura del código aplicando el atributo [ExcludeFromCodeCoverage] presente en el espacio de nombres System.Diagnostics.CodeAnalysis.
Para .Net (no .Net Framework), este atributo se puede aplicar a nivel de ensamblaje.
Para .Net Framework, consulte FCCExcludeFromCodeCoverage, más arriba, para obtener una funcionalidad similar.
Para ignorar el código atribuido con un tipo diferente:
También puede ignorar atributos adicionales agregándolos a la lista 'ExcludeByAttribute'. Para Coverlet/OpenCover, agregue para agregar a la lista 'ExcludeByAttribute' (completamente calificado o no calificado). Para la cobertura del código ms, agréguelo a la lista 'AttributesExclude'. Esto utiliza la coincidencia de expresiones regulares.
Las salidas de la FCC, de forma predeterminada, se encuentran dentro de la carpeta Debug de cada proyecto de prueba. Si lo prefiere, puede especificar una carpeta que contenga los archivos generados internamente y utilizados por la FCC. Los dos métodos siguientes buscan un directorio que contenga un archivo .sln en un directorio ascendente del directorio que contiene el primer archivo del proyecto de prueba. Si se encuentra dicho directorio de solución, se aplica la lógica.
Si el directorio de la solución tiene un subdirectorio fcc-output, se utilizará automáticamente.
Alternativamente, si proporciona FCCSolutionOutputDirectoryName en las opciones, el directorio se creará y utilizará si es necesario.
Consulte las pautas de contribución si desea contribuir a este proyecto.
Para clonar y crear este proyecto usted mismo, asegúrese de instalar la extensión Extensibility Essentials para Visual Studio, que habilita algunas funciones utilizadas por este proyecto.
apache 2.0
Sobrecama
AbrirCubierta
Generador de informes
Proveedor | Tipo | Enlace |
---|---|---|
PayPal | Una vez | |
Liberapay | Periódico |