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
属性

注解

这是与工具无关的通用条件。 有两种模式:

  • 如果未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)

初始化类的新实例,该实例 ExecutableConditionAttribute 检查给定的可执行文件是否可用 PATH

ExecutableConditionAttribute(String, String[])

仅当给定命令可用时,才初始化包含测试的类的新实例 ExecutableConditionAttribute

ExecutableConditionAttribute(String)

初始化类的新实例,该实例 ExecutableConditionAttribute 仅在给定的可执行文件可用 PATH时才包含测试。

属性

名称 说明
Arguments

获取传递给可执行文件的参数。 如果为空,则仅检查可执行文件 PATH 是否存在;否则,可执行文件会使用这些参数运行,并且必须使用代码 0 退出。

Executable

获取此条件查找的可执行文件。

GroupName

获取此属性的组名称。 每个命令 -- 与 Mode -- 组合在一起,形成自己的组,因此需要多个不同的命令与逻辑 AND 相结合,而具有相同模式的命令不会无提示地取消(镜像 MemberConditionAttribute)。

IgnoreMessage

获取或设置忽略消息,该消息指示忽略测试方法或测试类的原因。

(继承自 ConditionBaseAttribute)
IsConditionMet

获取一个值,该值指示是否满足条件。 此属性的实现不应读取该 Mode 属性。

Mode

获取条件模式。

(继承自 ConditionBaseAttribute)
TimeoutSeconds

获取或设置等待可执行文件在提供时 Arguments 退出的最大秒数。 小于或等于 0 的值表示无超时。 默认为 30 秒。

适用于