다음을 통해 공유


MSTEST0040: '비동기 void' 컨텍스트 내에서 어설션하지 마세요.

재산
규칙 ID MSTEST0040
제목 'async void' 컨텍스트 내에서 어설션하지 마세요.
범주 사용법
수정이 중단되거나 호환되지 않는 호환성이 손상되지 않는 경우
기본적으로 사용하도록 설정
기본 심각도 경고
버전 에 도입된 3.8.0
코드 수정이 있습니까 아니요

원인

async void 메서드, 로컬 함수, 람다에서의 어설션 메서드 사용.

규칙 설명

async void 컨텍스트에서 발생한 예외는 처리되지 않습니다. async void 메서드의 실패한 어설션은 삼켜지고 .NET Framework에서 VSTest를 사용할 때 프로세스가 중단되지 않습니다. .NET에서 async void 메서드의 실패한 어설션은 Microsoft.Testing.Platform 또는 VSTest를 사용할 때 프로세스가 충돌할 수 있습니다. 예외를 catch하는 사용자 지정 SynchronizationContext가 있는 경우 실패한 어설션이 조용히 삼켜질 수 있습니다.

위반을 해결하는 방법

async void어설션을 사용하지 않도록 코드를 리팩터링합니다.

경고를 표시하지 않는 경우

이 규칙의 경고를 억누르지 마세요.