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
中不使用断言。
何时禁止显示警告
不禁止显示此规则发出的警告。