2012-07-06 24 views
17

Używam podkreśleń dla moich metod testowania dla lepszej czytelności i chcę tłumić błędy/ostrzeżenia FxCop dla całej testowej przestrzeni nazw.SuppressMessage dla całego obszaru nazw

Jak mogę to osiągnąć?

Grałem z GlobalSuppressions.cs ale nic nie działało:

[module: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "namespace", Target = "Company.Product.Tests)] 
[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", Scope = "namespace", Target = "Company.Product.Tests)] 
+2

+1 Ditto ... Próbowałem podobny w pliku AssemblyInfo.cs i to też nie działa. Może CA1707 nie może być skierowany do całej biblioteki lub przestrzeni nazw, ale tylko do samego członka. – harlam357

Odpowiedz

3

myślę, że nie jest możliwe, ponieważ harlam357 już powiedział.

3

Tak, nie jest to możliwe w przypadku FxCop < = 10.0.

Co można zrobić, to wyłączyć CA1707 za pomocą niestandardowego pliku reguł (może tylko dla projektów testowych).

2

Jak już powiedziano, nie jest to możliwe po wyjęciu z pudełka. Imho, jest to zamierzone, ponieważ tłumienie musi być zrobione unitarily.

Istnieje obejście umożliwiające ręczne wykonanie tej czynności za pomocą funkcji FXCop 10 przy użyciu funkcji Copy As > Module-level SuppressMessage.

Wady, trzeba będzie to powtarzać za każdym razem, gdy przestrzeń nazw zostanie zmieniona, ale jak już powiedziano, globalne tłumienia powinny być izolowane.

  1. Otwórz swój zespół w FxCop 10 (System.Xml tutaj) i uruchomienia analizy
  2. Wybierz nazw (System.Xml tutaj)
  3. Zaznacz wszystko naruszyli przepisy
  4. prawym przyciskiem myszy i Copy As > Module-level SupressMessage
  5. Następnie wklej go w GlobalSuppressions.cs np

Uwaga: można to zrobić na poziomie złożenia, przestrzeni nazw lub typu.

Module-level SuppressMessage

Powiązane problemy