MSTEST0018: DynamicData가 유효해야 합니다
속성 | 값 |
---|---|
규칙 ID | MSTEST0018 |
제목 | DynamicData가 유효해야 합니다 |
범주 | 사용 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
기본적으로 사용하도록 설정됨 | 예 |
기본 심각도 | Warning |
버전에서 도입됨 | 3.6.0 |
원인
[DynamicData]
(으)로 표시된 메서드에 유효한 레이아웃이 있어야 합니다.
규칙 설명
[DynamicData]
(으)로 표시된 메서드 또한 [TestMethod]
(또는 파생된 특성)(으)로 표시되어야 합니다.
참조된 "데이터 원본" 멤버:
- 지정된 형식(형식이 지정되지 않은 경우 현재 클래스)에 있어야 합니다
- 오버로드가 없어야 합니다
-
DataSourceType
속성과 동일한 종류(메서드 또는 속성)여야 합니다 -
public
에 해당해야 합니다 -
static
에 해당해야 합니다 - 제네릭이 아니어야 합니다
- 매개 변수가 없어야 합니다
-
IEnumerable<object[]>
,IEnumerable<Tuple<T,...>>
또는IEnumerable<ValueTuple<,...>>
을(를) 반환해야 합니다
참조된 "표시 이름" 멤버:
- 지정된 형식(형식이 지정되지 않은 경우 현재 클래스)에 있어야 합니다
- 오버로드가 없어야 합니다
- 메서드여야 합니다
-
public
에 해당해야 합니다 -
static
에 해당해야 합니다 - 제네릭이 아니어야 합니다
-
string
을(를) 반환해야 합니다 - 정확히 2개의 매개 변수를 사용해야 하며, 첫 번째는
MethodInfo
, 두 번째는object[]
에 해당해야 합니다
예시:
public static string GetDisplayName(MethodInfo methodInfo, object[] data)
{
return string.Format("{0} ({1})", methodInfo.Name, string.Join(",", data));
}
위반 문제를 해결하는 방법
위에서 설명한 조건과 일치하는 특성인지를 확인합니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다. 이 규칙을 무시하면 플래그가 지정된 인스턴스가 건너뛰거나 런타임 오류가 발생합니다.
경고 표시 안 함
단일 위반을 무시하려면 소스 파일에 전처리기 지시문을 추가하여 규칙을 비활성화한 후 다시 활성화하십시오.
#pragma warning disable MSTEST0018
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0018
파일, 폴더 또는 프로젝트의 규칙을 비활성화하려면 none
에서 그 심각도를 으로 설정합니다.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0018.severity = none
자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET