ExecutableConditionAttribute Clase

Definición

Este atributo se usa para controlar condicionalmente si una clase de prueba o un método de prueba se ejecutará o se omitirá, en función de si hay disponible un archivo ejecutable determinado (herramienta).

[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
Herencia
ExecutableConditionAttribute
Atributos

Comentarios

Se trata de una condición genérica independiente de herramientas. Hay dos modos:

  • Cuando no se proporciona ningunaArguments, la condición solo comprueba que el archivo ejecutable se puede detectar en el sistema PATH (y, en Windows, se puede resolver a través PATHEXTde ). No ejecuta el archivo ejecutable. Por ejemplo, puede comprobar que docker está instalado.
  • Cuando Arguments se proporcionan, la condición se ejecuta executable arguments y solo se cumple cuando el proceso se cierra con código 0 dentro de TimeoutSeconds. Por ejemplo, [ExecutableCondition("docker", "version")] comprueba que la CLI de Docker responde realmente. La salida del proceso se redirige y descarta, y el proceso (junto con su árbol de procesos secundario, donde el tiempo de ejecución lo admite) finaliza si supera el tiempo de espera.

Estado específico del producto (por ejemplo, si el demonio de Docker está configurado para contenedores de Linux) está fuera del ámbito intencionadamente; layer tales comprobaciones encima de este atributo o author your own ConditionBaseAttribute.

Cada combinación de argumentos y ejecutables distintos forma su propio grupo de condiciones (vea GroupName). Como resultado, aplicar el atributo varias veces con comandos diferentes requiere que se cumplan todos ellos (AND lógico), mientras que aplicarlo varias veces con el mismo comando requiere que solo coincida (OR lógico).

Este atributo no se hereda. Aplicarlo a una clase base no afectará a las clases derivadas.

Constructores

Nombre Description
ExecutableConditionAttribute(ConditionMode, String, String[])

Inicializa una nueva instancia de la clase ExecutableConditionAttribute.

ExecutableConditionAttribute(ConditionMode, String)

Inicializa una nueva instancia de la ExecutableConditionAttribute clase que comprueba si el archivo ejecutable especificado está disponible en PATH.

ExecutableConditionAttribute(String, String[])

Inicializa una nueva instancia de la ExecutableConditionAttribute clase que incluye la prueba solo cuando el comando especificado está disponible.

ExecutableConditionAttribute(String)

Inicializa una nueva instancia de la ExecutableConditionAttribute clase que incluye la prueba solo cuando el archivo ejecutable especificado está disponible en PATH.

Propiedades

Nombre Description
Arguments

Obtiene los argumentos pasados al ejecutable. Cuando está vacío, solo se comprueba la presencia del archivo ejecutable; PATH de lo contrario, el ejecutable se ejecuta con estos argumentos y debe salir con el código 0.

Executable

Obtiene el archivo ejecutable que busca esta condición.

GroupName

Obtiene el nombre del grupo para este atributo. Cada comando , combinado con Mode , forma su propio grupo, por lo que la necesidad de varios comandos diferentes se combina con un AND lógico, mientras que el mismo comando con modos opuestos no cancela silenciosamente (creación de MemberConditionAttributereflejo ).

IgnoreMessage

Obtiene o establece el mensaje ignore que indica el motivo por el que se omite el método de prueba o la clase de prueba.

(Heredado de ConditionBaseAttribute)
IsConditionMet

Obtiene un valor que indica si se cumple la condición. La implementación de esta propiedad no debe leer la Mode propiedad .

Mode

Obtiene el modo de condición.

(Heredado de ConditionBaseAttribute)
TimeoutSeconds

Obtiene o establece el número máximo de segundos que se va a esperar a que el archivo ejecutable salga cuando Arguments se proporcione. Un valor menor o igual que 0 significa que no se ha agotado el tiempo de espera. El valor predeterminado es 30 segundos.

Se aplica a