Code Coverage and Generated Code

By Michael Flanakin @ 4:45 AM :: 2080 Views :: .NET, En Español :: Digg it!

If you've used the code coverage feature in Visual Studio 2005 or 2008 in projects that consume services, you've probably realized the proxy class VS generates for you counts against you for code coverage. Normally, I'd say this is completely fine, since all code, whether generated by a tool or by hand, should be tested. In my case, however, I was consuming a service with around 10 service methods, while I was only using one. Since I never plan on using the others, I didn't want them bringing my code coverage down. With the help of a few people from the VS team, I was able to find a good solution. It turns out everything counts against code coverage unless it's marked with either the DebuggerNonUserCode or DebuggerHidden attribute. The important thing to note is that, if you mark your code with either of these attributes, you won't be able to debug into them. Assuming you're fine with that, you're all set... for the most part. The only problem is if you update the service reference, the code would be re-generated without the attribute changes.

Cobertura de Código y Código Generado

En Español

Si usa la carecterística de cobertura de código en proyectos de Visual Studio 2005 o 2008 que usan servicios, es probablemente que ha realizado que la clase la clase representativa generada cerca VS cuenta contra usted para cobertura de código. Normalmente, diría que esto es bueno, desde todo el código, si generado por una herramienta o manualmente, debe ser probado. En mi caso, usé un servicio con 10 métodos, pero solamente usado uno. Puesto que nunca planeo usar los otros, no quise reducir mi cobertura del código. Con la ayuda de algunas personas desde el equipo de VS, encontré una buena solución. Resulta todo reduce cobertura del código, a menos que haya marcado con el DebuggerNonUserCodeDebuggerHidden atributo. Es importante que sepa es que si marca su código con cualquiera de estos atributos, no podrá depurar en estos ellos. Si eso es aceptable, usted tiene su respuesta... sobre todo. El único problema es que si renova la referencia del servicio, el código sería generado otra vez sin los cambios a los atributos.

Ratings