다음을 통해 공유


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 심각도를 사용합니다.

메모

기본적으로 경고로 사용하도록 설정된 규칙은 런타임에 문제를 일으킬 것으로 예상되는 위반입니다.

대부분의 개발자가 사용할 것으로 예상되는 모드입니다. Info(suggestion) 심각도를 가진 기본적으로 활성화된 규칙은 경고로 상향 조정됩니다. 또한 특정 규칙은 Recommended 모드와 All 모드 모두에서 오류로 에스컬레이션될 수 있습니다. 예를 들어 MSTEST0003: 테스트 메서드는 유효한 레이아웃을 가져야 하며, RecommendedAll 모드에서 오류로 처리됩니다.

All

이 모드는 Recommended것보다 더 공격적입니다. 모든 규칙은 경고로 사용하도록 설정됩니다. Recommended 모드에 대해 언급했듯이 특정 규칙은 Recommended 모드와 All 모드 모두에서 오류로 에스컬레이션될 수 있습니다. 예를 들어 MSTEST0003: 테스트 메서드는 유효한 레이아웃을 가져야 하며, RecommendedAll 모드에서 오류로 처리됩니다.

범주

디자인 규칙

디자인 규칙은 적절한 설계 및 모범 사례를 따르는 테스트 제품군을 만들고 유지하는 데 도움이 됩니다.

성능 규칙

성능 규칙은 고성능 테스트를 지원합니다.

억제 규칙

억제 규칙은 다른 규칙의 진단을 억제하는 것을 지원합니다.

사용 규칙

사용 규칙은 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