2010-07-26 14 views
16

Estoy usando Visual Studio 2010 y me gustaría excluir el código de referencia de servicio generado de mis estadísticas de cobertura de código.Cómo ignorar el código generado a partir de los datos de cobertura de código

Encontré un article pre 2010 que menciona el uso de los atributos DebuggerNonUserCode y DebuggerHidden. He intentado esto y funciona como se anuncia. DebuggerNonUserCode se establece en el nivel de clase, pero con más de 50 clases generadas en cada uno de los archivos de código de referencia de servicio generados, esta no es una opción atractiva.

¿Alguien tiene alguna solución alternativa?

+0

Gracias, eso resolvió mi problema. –

Respuesta

2

Puede crear un generador de código que emita clases parciales con el atributo DebuggerNonUserCode.

+0

Lamentablemente, el costo de crear el generador de código, probar etc., es el costo de agregarlo manualmente al código generado existente. Gracias por la idea – btlog

3

En Reference.cs, puede encontrar un atributo existente, como [System.Diagnostics.DebuggerStepThroughAttribute()] y hacer una búsqueda y reemplazarlo con [System.Diagnostics.DebuggerStepThroughAttribute()][System.Diagnostics.DebuggerNonUserCode()].
El mayor inconveniente es que debe volver a hacer esto cada vez que actualice la referencia.

No entiendo por qué MS no hace que la herramienta de cobertura de código sea lo suficientemente inteligente como para omitir el código generado de referencia de servicio.

3

System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverage se puede utilizar en la parte superior de la clase. Esta es una opción pobre ya que debe volver a hacer esto cada vez que regenere su código. Tal vez Microsoft podría hacer esto por nosotros automágicamente al crear referencias de servicio, tipos de marcos de entidad, etc. ...

13

Las clases generadas son parciales. Si crea una nueva clase en su proyecto con el mismo espacio de nombres y declaración de clase, puede agregar el atributo [ExcludeFromCodeCoverage] a su clase parcial. De esta forma, no tendrá que volver atrás y editar el archivo Reference.cs cada vez que actualice su referencia.

Cuestiones relacionadas