Pregunta

Me gustaría tener la verificación de compilación nocturna de cuántas NotImplementedExeptions hay en mi código .NET, así que espero que podamos eliminarlas todas antes de lanzarlas. Mi primer pensamiento es que FxCop podría ser una buena herramienta para hacer esto. ¿Alguien tiene una regla personalizada de FxCop para esto? ¿Cómo haría para crear uno yo mismo?

¿Fue útil?

Solución

Realmente implementé uno y mostré el código en esta respuesta .

Otros consejos

La prueba de unidad como esta fallará si más de 10 métodos crean NotImplementedException. Al fallar, informará todos los métodos que crean esta excepción.

var throwingMethods = codebase.Methods
  .Where(m => m
         .GetInstructions()
         .Exists(i => i.Creates<NotImplementedException>()))
  .ToArray();

if (throwingMethods.Length > 10)
  CollectionAssert.IsEmpty(throwingMethods);

Donde la base de código se crea así:

var codebase = new Codebase("Assembly1.dll","Assembly2.dll");

Snippet utiliza Lokad.Quality.dll de Bibliotecas compartidas de Lokad .

Hay un montón de recursos en la red sobre cómo crear su propia regla de FxCop, pero como 'NotImplementedException' es un nombre único, es probable que solo cuente su aparición en el texto de los archivos. Cree un ItemGroup para todos los archivos .cs y luego use un comando de DOS apropiado (como " buscar / c ") y obtenga el recuento como resultado, a través de la tarea EXEC.

Hay ocasiones en que se debe lanzar NotImplementedExeption . Un ejemplo sería si tiene una implementación parcial de IBindingList .

Hay mucho de recursos por ahí para creando custom fxCop rules . Sin embargo, un "encontrar en solución" podría ser un enfoque adecuado (en el supuesto de que no lo necesite en una compilación automatizada)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top