MSTEST0040: 'async void' コンテキスト内でアサートしない
プロパティ | [値] |
---|---|
ルール ID | MSTEST0040 |
タイトル | 'async void' コンテキスト内でアサートしない |
カテゴリ | 使い方 |
修正が破壊的か非破壊的か | なし |
既定で有効 | あり |
既定の重要度 | 警告 |
導入されたバージョン | 3.8.0 |
コード修正の有無 | いいえ |
原因
async void
メソッド、ローカル関数、またはラムダでの任意のアサーション メソッドの使用。
規則の説明
async void
コンテキストでスローされる例外は処理されません。 async void
メソッドで失敗したアサーションは飲み込まれ、.NET Framework で VSTest を使用してもプロセスはクラッシュしません。 .NET では、microsoft.Testing.Platform または VSTest を使用すると、async void
メソッドで失敗したアサーションによってプロセスがクラッシュする可能性があります。 例外をキャッチするカスタム SynchronizationContext
が存在する場合、失敗したアサーションが暗黙的に飲み込まれる可能性があります。
違反の修正方法
async void
でアサーションを使用しないようにコードをリファクタリングします。
どのようなときに警告を抑制するか
この規則による警告は抑制しないでください。
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET