次の方法で共有


MSTest 使用規則

使用規則は、MSTest 属性、メソッド、およびパターンの適切な使用をサポートします。 これらの規則は、一般的な間違いをキャッチし、テストがフレームワークの要件と規則に従っていることを確認します。

このカテゴリのルール

ルール ID Title Severity 修正完了
MSTEST0002 テスト クラスは有効である必要があります。 Warnung イエス
MSTEST0003 テスト メソッドは有効である必要があります。 警告→エラー* イエス
MSTEST0005 TestContext は有効である必要があります。 Warnung イエス
MSTEST0007 テスト メソッドで属性を使用します。 Warnung いいえ
MSTEST0008 TestInitialize は有効である必要があります。 Warnung イエス
MSTEST0009 TestCleanup が有効である必要があります。 Warnung イエス
MSTEST0010 ClassInitialize は有効である必要があります。 Warnung イエス
MSTEST0011 ClassCleanup は有効である必要があります。 Warnung イエス
MSTEST0012 AssemblyInitialize は有効である必要があります。 Warnung イエス
MSTEST0013 AssemblyCleanup が有効である必要があります。 Warnung イエス
MSTEST0014 DataRow は有効である必要があります。 Warnung イエス
MSTEST0017 アサーション引数は正しい順序で渡す必要があります。 Info イエス
MSTEST0018 DynamicData は有効である必要があります。 Warnung イエス
MSTEST0023 ブール型アサーションを否定しないでください。 Info イエス
MSTEST0024 静的な TestContext は格納しないでください。 Warnung いいえ
MSTEST0026 アサーション引数は、条件付きアクセスを回避する必要があります。 Info いいえ
MSTEST0030 テスト メソッドを含む型は、テスト クラスである必要があります。 Warnung イエス
MSTEST0031 System.ComponentModel.DescriptionAttribute を使用しないでください。 Info イエス
MSTEST0032 常に真であるアサート条件をレビューします。 Info いいえ
MSTEST0034 ClassCleanupBehavior.EndOfClass を使用します。 Info イエス
MSTEST0035 テスト メソッドまたはテスト クラスで DeploymentItem を使用します。 Info いいえ
MSTEST0037 適切なアサート メソッドを使用します。 Info イエス
MSTEST0038 値型では Assert.AreSame を使用しないでください。 Info イエス
MSTEST0039 新しい Assert.Throws メソッドを使用します。 Info イエス
MSTEST0040 非同期 void コンテキストではアサートを使用しないでください。 Warnung いいえ
MSTEST0041 テスト クラスで条件ベースの属性を使用します。 Warnung いいえ
MSTEST0042 重複した「DataRow」。 Warnung いいえ
MSTEST0043 テスト メソッドで retry 属性を使用します。 警告→エラー* イエス
MSTEST0046 StringAssert の代わりに Assert を使用します。 Info イエス
MSTEST0048 TestContext プロパティの使用方法。 Warnung いいえ
MSTEST0049 テストコンテキストのキャンセル用トークンを流します。 Info イエス
MSTEST0050 グローバルテストフィクスチャは有効である必要があります。 Warnung イエス
MSTEST0051 Assert.Throws には単一のステートメントを含める必要があります。 Info イエス
MSTEST0052 明示的な DynamicDataSourceType は避けてください。 Info イエス
MSTEST0053 Assert 形式のパラメーターは使用しないでください。 Info イエス
MSTEST0054 CancellationToken プロパティを使用します。 Info イエス
MSTEST0055 文字列メソッドの戻り値を無視しないでください。 Warnung いいえ
MSTEST0056 TestMethodAttribute は DisplayName を正しく設定する必要があります。 Info イエス
MSTEST0057 TestMethodAttribute はソース情報を伝達する必要があります。 Warnung いいえ
MSTEST0058 catch ブロック内のアサートは避けてください。 Info いいえ
MSTEST0059 パラレライズ属性を正しく使用する。 Warnung いいえ
MSTEST0060 TestMethodAttribute を複製します。 Warnung イエス
MSTEST0061 ランタイム チェックの代わりに OSCondition 属性を使用します。 Info イエス
MSTEST0062 out/ref テスト メソッドのパラメーターは使用しないでください。 Warnung イエス
MSTEST0063 テスト クラスには有効なコンストラクターが必要です。 Warnung いいえ

* Recommended モードと All モードでエラーにエスカレート。

一般的なシナリオ

テスト構造の検証

テスト クラス、メソッド、フィクスチャが MSTest の要件に従っていることを確認します。

  • MSTEST0002: クラス レイアウトの要件をテストします (例: public、non-static)。
  • MSTEST0003: テスト メソッドのレイアウト要件 (⚠️ がエラーにエスカレートされました)。
  • MSTEST0030: [TestMethod] を持つメソッドは、[TestClass] に含める必要があります。
  • MSTEST0063: クラス コンストラクターの検証をテストします。

ライフサイクル メソッド

初期化メソッドとクリーンアップ メソッドを検証します。

データドリブン テスト

データ属性が正しく使用されていることを確認します。

  • MSTEST0007: データ属性はテスト メソッド上にある必要があります。
  • MSTEST0014: DataRow 検証。
  • MSTEST0018: DynamicData 検証。
  • MSTEST0042: 重複する DataRow を検出します。
  • MSTEST0052: DynamicDataSourceType に自動検出を使用します。
  • MSTEST0062: out/ref パラメーターは使用しないでください。

より優れたアサーションを書く

正しく効果的なアサーションの使用に関する規則:

  • MSTEST0017: 正しい順序で期待/実績を渡します。
  • MSTEST0023: 条件を否定しないでください (Assert.IsFalse を直接使用します)。
  • MSTEST0026: アサーションで null 条件演算子を使用しないようにします。
  • MSTEST0032: 常に真の条件を確認します。
  • MSTEST0037: 最も適切なアサート メソッドを使用します。
  • MSTEST0038: 値型で AreSame を使用しないでください。
  • MSTEST0039: Assert.ThrowsExactly (新しい API) を使用します。
  • MSTEST0046: StringAssert よりも Assert を優先します。
  • MSTEST0051: Assert.Throws は 1 つのステートメントをテストする必要があります。
  • MSTEST0053: 書式パラメーターの代わりに文字列補間を使用します。
  • MSTEST0058: アサーションを catch ブロックに配置しないでください。

TestContext の使用方法

TestContext オブジェクトの適切な使用方法:

  • MSTEST0005: TestContext プロパティの検証。
  • MSTEST0024: TestContext は静的フィールドに格納しないでください。
  • MSTEST0048: テストフィクスチャでの制限付きプロパティアクセス。
  • MSTEST0049: TestContext からのフロー キャンセル トークン。
  • MSTEST0054: TestContext.CancellationToken プロパティを使用します。

非同期パターン

非同期テスト コードの規則:

  • MSTEST0040: 非同期 void メソッドではアサートを回避します。

テスト構成

  • MSTEST0031: 適切な属性 (System.ComponentModel.Description ではなく) を使用します。
  • MSTEST0035: DeploymentItem の使用方法。
  • MSTEST0041: 条件属性はテスト クラスに存在する必要があります。
  • MSTEST0043: 再試行属性はテスト メソッド上にある必要があります (⚠️ はエラーにエスカレートされます)。
  • MSTEST0055: 文字列メソッドの戻り値を無視しないでください。
  • MSTEST0056: TestMethodAttribute で DisplayName を正しく設定します。
  • MSTEST0057: カスタム TestMethodAttribute にソース情報を伝達します。
  • MSTEST0059: Parallelize と DoNotParallelize の両方を使用しないでください。
  • MSTEST0060: TestMethodAttribute が重複しないようにします。
  • MSTEST0061: プラットフォーム チェックに OSCondition 属性を使用します。