MSTEST0040:不要在“async void”上下文中断言

properties
规则编号 MSTEST0040
标题 不要在“async void”上下文中断言
类别 使用情况
修复是中断修复还是非中断修复 非中断
默认已启用
默认严重性 警告
是在版本 中引入的 3.8.0
是否存在代码修补程序

原因

async void 方法、本地函数或 lambda 中使用任何断言方法。

规则说明

async void 上下文中引发的异常不予处理。 async void 方法中的失败断言将被取消,并且不会在 .NET Framework 下使用 VSTest 时导致进程崩溃。 在 .NET 下,使用 Microsoft.Testing.Platform 或 VSTest 时,async void 方法中的失败断言可能会导致进程崩溃。 在存在捕获异常的自定义 SynchronizationContext 的情况下,失败的断言可能会被以无提示方式忽略。

如何解决违规问题

重构代码以在 async void中不使用断言。

何时禁止显示警告

不禁止显示此规则发出的警告。