MSTest 코드 분석
MSTest 분석("MSTESTxxxx") 규칙은 C# 또는 Visual Basic 코드에서 보안, 성능, 디자인 및 기타 문제를 검사합니다.
팁
Visual Studio를 사용하는 경우 여러 분석기 규칙에는 문제를 해결하는 데 적용할 수 있는 관련 코드 수정 사항이 있습니다. 코드 수정 사항은 전구 아이콘 메뉴에 표시됩니다.
규칙은 성능 사용량 등의 범주로 구성됩니다.
MSTest.TestFramework 3.7부터 MSTest.Analyzers NuGet 패키지는 프레임워크의 종속성입니다. 이전 버전의 경우 MSTest
메타패키지를 사용하거나 MSTest.Analyzers
대한 패키지 참조를 명시적으로 추가해야 합니다.
MSTestAnalysisMode
MSTest 3.8부터 MSTestAnalysisMode
명명된 MSBuild 속성을 사용하여 어떤 심각도에서 어떤 분석기를 사용할 수 있는지 확인할 수 있습니다.
팁
각 모드에 대해 어떤 심각도가 사용되는지 확인하려면 NuGet 캐시에서 관심 있는 버전의 패키지로 이동하고, globalconfigs
디렉터리를 찾고, 분석 모드에 해당하는 .globalconfig
파일을 열 수 있습니다.
NuGet 캐시 디렉터리를 찾는 방법에 대한 자세한 내용은 전역 패키지, 캐시 및 임시 폴더 관리참조하세요. 해당 디렉터리에서 mstest.analyzers
디렉터리를 찾고, 그 다음 버전(3.8 이상)을 찾은 후 globalconfigs
을 찾으세요.
또는 nuget.org
관심 있는 버전의 NuGet 패키지를 다운로드하여 NuGet 패키지 탐색기(Windows 앱)에서 보거나 웹앱 버전의 NuGet 패키지 탐색기직접 볼 수 있습니다.
이 속성에 사용할 수 있는 값은 다음과 같습니다.
None
이 값은 모든 분석기의 심각도를 none
로 설정하여 모든 기능을 비활성화합니다. 그런 다음 .editorconfig
또는 .globalconfig
파일을 사용하여 개별 분석기를 사용하도록 설정할 수 있습니다.
Default
이 설정은 각 규칙에 대해 문서화된 기본 동작을 따릅니다.
- 기본적으로 사용하도록 설정된 규칙은 기본 심각도를 사용합니다.
- 기본적으로 사용하지 않도록 설정된 규칙은
none
심각도를 사용합니다.
메모
기본적으로 경고로 사용하도록 설정된 규칙은 런타임에 문제를 일으킬 것으로 예상되는 위반입니다.
Recommended
대부분의 개발자가 사용할 것으로 예상되는 모드입니다. Info(suggestion
) 심각도를 가진 기본적으로 활성화된 규칙은 경고로 상향 조정됩니다. 또한 특정 규칙은 Recommended
모드와 All
모드 모두에서 오류로 에스컬레이션될 수 있습니다. 예를 들어 MSTEST0003: 테스트 메서드는 유효한 레이아웃을 가져야 하며, Recommended
및 All
모드에서 오류로 처리됩니다.
All
이 모드는 Recommended
것보다 더 공격적입니다. 모든 규칙은 경고로 사용하도록 설정됩니다.
Recommended
모드에 대해 언급했듯이 특정 규칙은 Recommended
모드와 All
모드 모두에서 오류로 에스컬레이션될 수 있습니다. 예를 들어 MSTEST0003: 테스트 메서드는 유효한 레이아웃을 가져야 하며, Recommended
및 All
모드에서 오류로 처리됩니다.
메모
다음 규칙은 완전히 옵트인되며 Default
, Recommended
또는 All
모드에서 사용하도록 설정되지 않습니다.
범주
디자인 규칙
디자인 규칙은 적절한 설계 및 모범 사례를 따르는 테스트 제품군을 만들고 유지하는 데 도움이 됩니다.
성능 규칙
억제 규칙
억제 규칙은 다른 규칙의 진단을 억제하는 것을 지원합니다.
사용 규칙
사용 규칙은 MSTest의 적절한 사용을 지원합니다.
MSTESTEXP
MSTest의 여러 API는 ExperimentalAttribute데코레이팅됩니다. 이 특성은 API가 실험적이며 이후 버전의 MSTest에서 제거되거나 변경될 수 있음을 나타냅니다. 이 특성은 아직 안정적이지 않고 프로덕션 사용에 적합하지 않을 수 있는 API를 식별하는 데 사용됩니다.
MSTESTEXP 진단은 코드에서 실험적 API를 사용하도록 경고합니다.
SuppressMessageAttribute
을(를) 사용하여 이 진단을 억제하려면 프로젝트에 다음 코드를 추가하십시오.
using System.Diagnostics.CodeAnalysis;
[assembly: SuppressMessage("MSTESTEXP", "Justification")]
또는 프로젝트에 다음 코드를 추가하여 전처리기 지시문으로 이 진단을 표시하지 않을 수 있습니다.
#pragma warning disable MSTESTEXP
// API that is causing the warning.
#pragma warning restore MSTESTEXP
.NET