ExecutableConditionAttribute 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
此属性用于根据给定的可执行文件(工具)是否可用,有条件地控制测试类或测试方法是否运行或被忽略。
[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
- 继承
- 属性
注解
这是与工具无关的通用条件。 有两种模式:
- 如果未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 检查给定的可执行文件是否可用 |
| ExecutableConditionAttribute(String, String[]) |
仅当给定命令可用时,才初始化包含测试的类的新实例 ExecutableConditionAttribute 。 |
| ExecutableConditionAttribute(String) |
初始化类的新实例,该实例 ExecutableConditionAttribute 仅在给定的可执行文件可用 |
属性
| 名称 | 说明 |
|---|---|
| Arguments |
获取传递给可执行文件的参数。 如果为空,则仅检查可执行文件 |
| Executable |
获取此条件查找的可执行文件。 |
| GroupName |
获取此属性的组名称。 每个命令 -- 与 Mode -- 组合在一起,形成自己的组,因此需要多个不同的命令与逻辑 AND 相结合,而具有相同模式的命令不会无提示地取消(镜像 MemberConditionAttribute)。 |
| IgnoreMessage |
获取或设置忽略消息,该消息指示忽略测试方法或测试类的原因。 (继承自 ConditionBaseAttribute) |
| IsConditionMet |
获取一个值,该值指示是否满足条件。 此属性的实现不应读取该 Mode 属性。 |
| Mode |
获取条件模式。 (继承自 ConditionBaseAttribute) |
| TimeoutSeconds |
获取或设置等待可执行文件在提供时 Arguments 退出的最大秒数。 小于或等于 0 的值表示无超时。 默认为 30 秒。 |