문제

.NET 코드에 몇 개의 명백한 표현이 있는지에 대한 야간 빌드를 확인하고 싶습니다. 나의 첫 번째 생각은 FXCOP가이를 수행하기에 좋은 도구 일 수 있다는 것입니다. 누구든지 이것에 대한 맞춤형 FXCOP 규칙이 있습니까? 직접 하나를 만드는 방법은 무엇입니까?

도움이 되었습니까?

해결책

실제로 하나를 구현하고 코드를 보여주었습니다 이 답변.

다른 팁

10 개 이상의 메소드가 NotimplementedException을 생성하면 이와 같은 단위 테스트가 실패합니다. 실패하면이 예외를 생성하는 모든 방법을보고합니다.

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

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

Codebase가 다음과 같이 생성되는 곳 :

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

Snippet은 Lokad.quality.dll을 사용합니다 Lokad 공유 도서관.

자신의 FXCOP 규칙을 만드는 방법에 대한 인터넷에는 수많은 리소스가 있지만 'NotimplementedException'이 독특한 이름이므로 파일 텍스트에서 발생할 수 있습니다. 모든 .CS 파일에 대한 항목 그룹을 작성한 다음 적절한 DOS 명령 (예 : "find /c")을 사용하고 EXEC 작업을 통해 출력으로 카운트를 얻습니다.

a NotImplementedExeption ~해야 한다 던지기 - 한 가지 예는 당신이 부분적으로 구현하는 것입니다. IBindingList.

거기 있습니다 풍부한자원 저 밖에 ~을 위한 창조 커스텀 FXCOP 규칙. 그러나 "솔루션의 찾기"는 적절한 접근 방식 일 수 있습니다 (자동화 된 빌드에서는이 문제가 필요하지 않다고 가정 할 때).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top