MSTEST0011: ClassCleanup 메서드에 유효한 레이아웃 필요
속성 | 값 |
---|---|
규칙 ID | MSTEST0011 |
제목 | ClassCleanup 메서드에 유효한 레이아웃 필요 |
범주 | 사용 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
기본적으로 사용하도록 설정됨 | 예 |
기본 심각도 | Warning |
버전에서 도입됨 | 3.3.0 |
코드 수정이 있나요 | 예 |
원인
[ClassCleanup]
(으)로 표시된 메서드에 유효한 레이아웃이 있어야 합니다.
규칙 설명
[ClassCleanup]
(으)로 표시된 메서드가 유효해지려면 다음 레이아웃을 따라야 합니다.
-
InheritanceBehavior
모드를 설정하지 않으면 제네릭 클래스에서 선언할 수 없습니다. -
public
(이)어야 함 -
static
(이)어야 함 -
async void
(이)가 아니어야 함 - 특별한 메서드(종료자, 연산자...)가 아니어야 함
- 제네릭이 아니어야 함
- 매개변수를 사용하지 않아야 하며, MSTest 3.8부터는 단일
TestContext
매개변수를 가질 수 있습니다. - 반환 형식이
void
,Task
또는ValueTask
(이)어야 함 - 클래스가
InheritanceBehavior.BeforeEachDerivedClass
인 경우abstract
특성 매개 변수를 지정해야 합니다. - 클래스가
InheritanceBehavior.BeforeEachDerivedClass
인 경우sealed
특성 매개 변수를 지정하면 안 됩니다.
이러한 메서드를 선언하는 형식은 다음 규칙도 준수해야 합니다.
- 형식은
class
여야 합니다. -
class
는public
또는internal
이어야 합니다(테스트 프로젝트에서[DiscoverInternals]
특성을 사용하는 경우). -
class
는static
이면 안 됩니다. -
class
가sealed
인 경우[TestClass]
(또는 파생된 특성)으로 표시되어야 합니다.
- 클래스는 제네릭이 아니어야 함
위반 문제를 해결하는 방법
메서드가 위에서 설명한 레이아웃과 일치하는지 확인합니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다. 이 규칙을 무시하면 플래그가 지정된 인스턴스가 건너뛰거나 런타임 오류가 발생합니다.
경고 표시 안 함
단일 위반을 억제하려면 소스 파일에 전처리기 지시문을 추가하여 규칙을 비활성화했다가 다시 활성화하십시오.
#pragma warning disable MSTEST0011
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0011
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 하려면 none
에서 심각도를 으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0011.severity = none
자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET