2012-07-06 2 views
17

가독성을 높이기 위해 테스트 메서드에 밑줄을 사용하고 전체 테스트 네임 스페이스에 대한 FxCop 오류/경고를 표시하지 않겠습니다.SuppressMessage 전체 네임 스페이스

어떻게하면됩니까?

나는 GlobalSuppressions.cs 연주하지만 아무것도 일하지 :

[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 동감 ... 나는 AssemblyInfo.cs 파일에서 유사한 시도하고 또한 작동하지 않았다. 어쩌면 CA1707은 전체 라이브러리 또는 네임 스페이스를 대상으로 할 수는 없지만 구성원 자체 만 대상으로 지정할 수 있습니다. – harlam357

답변

3

나는 harlam357 이미 말했듯이 불가능하다 생각합니다.

3

예, FxCop < = 10.0에서는 불가능합니다.

할 수있는 일은 사용자 정의 규칙 파일 (아마도 테스트 프로젝트 용)을 사용하여 CA1707을 비활성화하는 것입니다.

2

이미 말했듯이, 그것은 기본적으로 불가능합니다. Imho, 억압은 일원적으로해야하기 때문에 그것은 예정된다.

Copy As > Module-level SuppressMessage 기능이있는 FXCop 10을 통해 수동으로 해결 방법이 있습니다.

단점은 네임 스페이스가 수정 될 때마다 반복해야하지만 이미 말했듯이 글로벌 억제가 격리되어야합니다.

  1. 이 네임 스페이스를 선택 분석을
  2. 을 (에서 System.Xml 여기)의 FxCop (10)에 어셈블리를 열고 실행 (여기에서 System.Xml)
  3. 모든 위반 규칙을
  4. 오른쪽 클릭을 선택하고, Copy As > Module-level SupressMessage
  5. 예를 들어 GlobalSuppressions.cs에 붙여 넣습니다.

참고 : 어셈블리, 네임 스페이스 또는 유형 수준에서 수행 할 수 있습니다.

Module-level SuppressMessage

관련 문제