ExecutableConditionAttribute Classe

Definizione

Questo attributo viene usato per controllare in modo condizionale se una classe di test o un metodo di test verrà eseguita o ignorata, in base alla disponibilità di un determinato eseguibile (strumento).

[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
Ereditarietà
ExecutableConditionAttribute
Attributi

Commenti

Si tratta di una condizione generica indipendente dallo strumento. Esistono due modalità:

  • Quando non viene specificato alcun valoreArguments, la condizione controlla solo che l'eseguibile sia individuabile nel sistema PATH (e, in Windows, risolvibile tramite PATHEXT). Non esegue il file eseguibile. Ad esempio, può verificare che docker sia installato.
  • Quando Arguments vengono fornite, la condizione viene eseguita executable arguments e viene soddisfatta solo quando il processo viene chiuso con codice 0 all'interno TimeoutSecondsdi . Ad esempio, [ExecutableCondition("docker", "version")] verifica che l'interfaccia della riga di comando di Docker risponda effettivamente. L'output del processo viene reindirizzato e rimosso e il processo (insieme all'albero dei processi figlio, in cui il runtime lo supporta) viene terminato se supera il timeout.

Stato specifico del prodotto (ad esempio se il daemon Docker è configurato per i contenitori Linux) è intenzionalmente fuori ambito; livello tali controlli sopra questo attributo o creare il proprio ConditionBaseAttribute.

Ogni combinazione distinct executable-and-arguments costituisce il proprio gruppo di condizioni (vedere GroupName). Di conseguenza, l'applicazione dell'attributo più volte con comandi diversi richiede che tutte siano soddisfatte (AND logico), mentre l'applicazione più volte con lo stesso comando richiede solo una corrispondenza (OR logico).

Questo attributo non viene ereditato. L'applicazione a una classe base non influirà sulle classi derivate.

Costruttori

Nome Descrizione
ExecutableConditionAttribute(ConditionMode, String, String[])

Inizializza una nuova istanza della classe ExecutableConditionAttribute.

ExecutableConditionAttribute(ConditionMode, String)

Inizializza una nuova istanza della ExecutableConditionAttribute classe che controlla se il file eseguibile specificato è disponibile in PATH.

ExecutableConditionAttribute(String, String[])

Inizializza una nuova istanza della ExecutableConditionAttribute classe che include il test solo quando è disponibile il comando specificato.

ExecutableConditionAttribute(String)

Inizializza una nuova istanza della ExecutableConditionAttribute classe che include il test solo quando l'eseguibile specificato è disponibile in PATH.

Proprietà

Nome Descrizione
Arguments

Ottiene gli argomenti passati all'eseguibile. Se vuoto, viene selezionata solo la presenza dell'eseguibile PATH in . In caso contrario, l'eseguibile viene eseguito con questi argomenti e deve uscire con il codice 0.

Executable

Ottiene l'eseguibile che questa condizione cerca.

GroupName

Ottiene il nome del gruppo per questo attributo. Ogni comando , combinato con Mode , forma il proprio gruppo, quindi richiede diversi comandi diversi viene combinato con un AND logico, mentre lo stesso comando con le modalità opposte non annulla automaticamente (mirroring MemberConditionAttribute).

IgnoreMessage

Ottiene o imposta il messaggio ignore che indica il motivo dell'esclusione del metodo di test o della classe di test.

(Ereditato da ConditionBaseAttribute)
IsConditionMet

Ottiene un valore che indica se la condizione viene soddisfatta. L'implementazione di questa proprietà non deve leggere la Mode proprietà .

Mode

Ottiene la modalità condizione.

(Ereditato da ConditionBaseAttribute)
TimeoutSeconds

Ottiene o imposta il numero massimo di secondi di attesa per l'uscita dell'eseguibile quando Arguments viene specificato. Un valore minore o uguale a 0 indica che non viene eseguito alcun timeout. Il valore predefinito è 30 secondi.

Si applica a