ExecutableConditionAttribute クラス

定義

この属性は、特定の実行可能ファイル (ツール) が使用可能かどうかに基づいて、テスト クラスまたはテスト メソッドを実行するか無視するかを条件付きで制御するために使用されます。

[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
public sealed class ExecutableConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)]
[System.Runtime.CompilerServices.Nullable(0)]
public sealed class ExecutableConditionAttribute : Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
type ExecutableConditionAttribute = class
    inherit ConditionBaseAttribute
[<System.AttributeUsage(System.AttributeTargets.Class | System.AttributeTargets.Method, AllowMultiple=true, Inherited=false)>]
[<System.Runtime.CompilerServices.Nullable(0)>]
type ExecutableConditionAttribute = class
    inherit ConditionBaseAttribute
Public NotInheritable Class ExecutableConditionAttribute
Inherits ConditionBaseAttribute
継承
ExecutableConditionAttribute
属性

注釈

これは、ツールに依存しない一般的な条件です。 次の 2 つのモードがあります。

  • Argumentsが指定されていない場合、条件は、実行可能ファイルがシステム PATH検出可能であることを確認するだけです (また、Windowsでは、PATHEXTで解決できます)。 実行可能ファイルは実行されません。 たとえば、 docker がインストールされていることを確認できます。
  • Argumentsが指定されると、条件はexecutable arguments実行され、TimeoutSeconds内のコード 0でプロセスが終了した場合にのみ満たされます。 たとえば、 [ExecutableCondition("docker", "version")] は、Docker CLI が実際に応答することを確認します。 プロセスの出力はリダイレクトされて破棄され、タイムアウトを超えるとプロセスは (ランタイムがサポートする子プロセス ツリーと共に) 終了します。

製品固有の状態 (Docker デーモンが Linux コンテナー用に構成されているかどうかなど) は、意図的にスコープ外です。この属性の上にこのようなチェックを重ねて、または独自の ConditionBaseAttributeを作成します。

それぞれの実行可能ファイルと引数の組み合わせによって、独自の条件グループが形成されます ( GroupNameを参照)。 その結果、属性を異なるコマンドで複数回適用するには 、すべての 属性を満たす必要があります (論理 AND)。 一方、同じコマンドを使用して複数回適用する場合は、一致する (論理 OR) だけで済みます。

この属性は継承されません。 基底クラスに適用しても、派生クラスには影響しません。

コンストラクター

名前 説明
ExecutableConditionAttribute(ConditionMode, String, String[])

ExecutableConditionAttribute クラスの新しいインスタンスを初期化します。

ExecutableConditionAttribute(ConditionMode, String)

指定した実行可能ファイルがPATHで使用できるかどうかを確認する、ExecutableConditionAttribute クラスの新しいインスタンスを初期化します。

ExecutableConditionAttribute(String, String[])

指定したコマンドが使用可能な場合にのみ、テストを含む ExecutableConditionAttribute クラスの新しいインスタンスを初期化します。

ExecutableConditionAttribute(String)

指定された実行可能ファイルがPATHで使用可能な場合にのみ、テストを含むExecutableConditionAttribute クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Arguments

実行可能ファイルに渡される引数を取得します。 空の場合、 PATH 上の実行可能ファイルのみがチェックされます。それ以外の場合、実行可能ファイルはこれらの引数で実行され、コード 0 で終了する必要があります。

Executable

この条件が検索する実行可能ファイルを取得します。

GroupName

この属性のグループ名を取得します。 各コマンドは、 Mode と組み合わされて独自のグループを形成するため、複数の異なるコマンドを論理 AND と組み合わせる必要があります。反対のモードを持つ同じコマンドは自動的に取り消されません (ミラーリング MemberConditionAttribute)。

IgnoreMessage

テスト メソッドまたはテスト クラスを無視する理由を示す無視メッセージを取得または設定します。

(継承元 ConditionBaseAttribute)
IsConditionMet

条件が満たされているかどうかを示す値を取得します。 このプロパティの実装では、 Mode プロパティを読み取ってはいけません。

Mode

条件モードを取得します。

(継承元 ConditionBaseAttribute)
TimeoutSeconds

Argumentsが指定されたときに実行可能ファイルが終了するまで待機する最大秒数を取得または設定します。 0 以下の値は、タイムアウトがないことを意味します。 既定値は 30 秒です。

適用対象