속성 | 값 |
---|---|
규칙 ID | MSTEST0001 |
타이틀 | 테스트 병렬화를 명시적으로 사용 또는 사용 안 함 |
범주 | 성능 |
수정 사항이 주요 변경인지 여부 | 주요 변경 아님 |
기본적으로 사용하도록 설정됨 | 예 |
기본 심각도 | 정보 |
버전에서 도입됨 | 3.2.0 |
코드 수정을 할 수 있나요 | 아니요 |
원인
어셈블리가 [assembly: Parallelize]
또는 [assembly: DoNotParallelize]
특성으로 표시되지 않았습니다.
규칙 설명
기본적으로 MSTest는 동일한 어셈블리 내에서 테스트를 순차적으로 실행하므로 심각한 성능 제한 사항이 발생할 수 있습니다. 테스트를 병렬로 실행하려면 어셈블리 특성 [assembly: Parallelize]
를 사용하도록 설정하고, 어셈블리가 병렬화할 수 없는 것으로 알려진 경우 어셈블리 수준 특성 [assembly: DoNotParallelize]
를 명시적으로 사용하는 것이 좋습니다.
[assembly: Parallelize]
의 기본 구성은 [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)]
과 동등합니다. 즉, 병렬화가 클래스 수준(메서드 수준 아님)에서 설정되고 내부 구현에 따라 가능한 한 많은 스레드를 사용한다는 의미입니다.
위반 문제를 해결하는 방법
이 규칙 위반을 수정하려면 [assembly: Parallelize]
또는 [assembly: DoNotParallelize]
특성을 추가합니다. 최상의 병렬화를 위해서는 [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
을 사용하는 것이 좋습니다.
경고를 표시하지 않는 경우
이 규칙에서는 경고를 표시해야 합니다. 병렬화를 사용하도록 설정하면 많은 라이브러리가 엄청난 성능 향상의 이점을 활용할 수 있습니다. 병렬화를 방지하는 방식으로 테스트 애플리케이션을 설계할 때 특성을 명시적으로 설정하면 새로운 개발자가 라이브러리의 제한 사항을 이해하는 데 도움이 됩니다.
경고 표시 안 함
이 규칙 위반은 인라인으로 억제할 수 없습니다.
파일, 폴더 또는 프로젝트에 대한 규칙을 사용하지 않도록 설정하려면, none
에서 해당 항목의 심각도를 으로 설정하세요.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0001.severity = none
자세한 내용은 코드 분석 경고표시하지 않는 방법을 참조하세요.
.NET