다음을 통해 공유


MSTEST0010: ClassInitialize 메서드에 유효한 레이아웃 필요

속성
규칙 ID MSTEST0010
제목 ClassInitialize 메서드에 유효한 레이아웃 필요
범주 사용
수정 사항이 주요 변경인지 여부 주요 변경 아님
기본적으로 사용하도록 설정됨
기본 심각도 Warning
버전에서 도입됨 3.3.0
코드 수정이 있습니까?

원인

[ClassInitialize](으)로 표시된 메서드에 유효한 레이아웃이 있어야 합니다.

규칙 설명

[ClassInitialize](으)로 표시된 메서드가 유효해지려면 다음 레이아웃을 따라야 합니다.

  • InheritanceBehavior 모드를 설정하지 않으면 제네릭 클래스에서 선언할 수 없습니다.
  • public(이)어야 함
  • static(이)어야 함
  • async void(이)가 아니어야 함
  • 특별한 메서드(종료자, 연산자...)가 아니어야 함
  • 제네릭이 아니어야 함
  • TestContext 형식의 매개 변수 하나를 사용해야 함
  • 반환 형식이 void, Task 또는 ValueTask(이)어야 함
  • 클래스가 InheritanceBehavior.BeforeEachDerivedClass인 경우 abstract 특성 매개 변수를 지정해야 합니다.
  • 클래스가 InheritanceBehavior.BeforeEachDerivedClass인 경우 sealed 특성 매개 변수를 지정하면 안 됩니다.

이러한 메서드를 선언하는 형식은 다음 규칙도 준수해야 합니다.

  • 형식은 class여야 합니다.
  • classpublic 또는 internal이어야 합니다(테스트 프로젝트에서 [DiscoverInternals] 특성을 사용하는 경우).
  • classstatic이면 안 됩니다.
  • classsealed인 경우 [TestClass](또는 파생된 특성)으로 표시되어야 합니다.
  • 클래스는 제네릭이 아니어야 함

위반 문제를 해결하는 방법

메서드가 위에서 설명한 레이아웃과 일치하는지 확인합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다. 이 규칙을 무시하면 플래그가 지정된 인스턴스가 건너뛰거나 런타임 오류가 발생합니다.

경고 표시 안 함

단일 위반을 억제하려면 소스 파일에 전처리기 지시문을 추가하여 규칙을 비활성화했다가 다시 활성화하십시오.

#pragma warning disable MSTEST0010
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0010

파일, 폴더 또는 프로젝트에 대한 규칙을 비활성화하려면, none에서 해당 심각도를 으로 설정하십시오.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0010.severity = none

자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.