ExecutableConditionAttribute Classe

Definição

Esse atributo é usado para controlar condicionalmente se uma classe de teste ou um método de teste será executado ou ignorado, com base em se um determinado executável (ferramenta) está disponível.

[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
Herança
ExecutableConditionAttribute
Atributos

Comentários

Essa é uma condição genérica e independente de ferramentas. Há dois modos:

  • Quando não Arguments for fornecido, a condição verifica apenas se o executável é detectável no sistema PATH (e, em Windows, resolvível por).PATHEXT Ele não executa o executável. Por exemplo, ele pode verificar docker se está instalado.
  • Quando Arguments são fornecidos, a condição é executada executable arguments e atendida somente quando o processo é encerrado com o código 0 dentro TimeoutSeconds. Por exemplo, [ExecutableCondition("docker", "version")] verifica se a CLI do Docker realmente responde. A saída do processo é redirecionada e descartada e o processo (juntamente com sua árvore de processo filho, em que o runtime dá suporte a ele) é encerrado se exceder o tempo limite.

Estado específico do produto (por exemplo, se o daemon do Docker está configurado para contêineres do Linux) está intencionalmente fora do escopo; camada tais verificações sobre esse atributo ou criar seu próprio ConditionBaseAttribute.

Cada combinação de executáveis e argumentos distintos forma seu próprio grupo de condições (consulte GroupName). Como resultado, aplicar o atributo várias vezes com comandos diferentes requer que todos eles sejam satisfeitos (AND lógico), enquanto a aplicá-lo várias vezes com o mesmo comando requer apenas um para corresponder (OR lógico).

Esse atributo não é herdado. A aplicação a uma classe base não afetará as classes derivadas.

Construtores

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

Inicializa uma nova instância da classe ExecutableConditionAttribute.

ExecutableConditionAttribute(ConditionMode, String)

Inicializa uma nova instância da ExecutableConditionAttribute classe que verifica se o executável determinado está disponível.PATH

ExecutableConditionAttribute(String, String[])

Inicializa uma nova instância da ExecutableConditionAttribute classe que inclui o teste somente quando o comando determinado está disponível.

ExecutableConditionAttribute(String)

Inicializa uma nova instância da ExecutableConditionAttribute classe que inclui o teste somente quando o executável determinado estiver disponível.PATH

Propriedades

Nome Description
Arguments

Obtém os argumentos passados para o executável. Quando vazio, somente a presença do executável é PATH verificada; caso contrário, o executável é executado com esses argumentos e deve sair com o código 0.

Executable

Obtém o executável que essa condição procura.

GroupName

Obtém o nome do grupo para esse atributo. Cada comando -- combinado com Mode -- forma seu próprio grupo, portanto, exigir vários comandos diferentes é combinado com um AND lógico, enquanto o mesmo comando com modos opostos não cancela silenciosamente (espelhamento MemberConditionAttribute).

IgnoreMessage

Obtém ou define a mensagem de ignorar indicando o motivo para ignorar o método de teste ou a classe de teste.

(Herdado de ConditionBaseAttribute)
IsConditionMet

Obtém um valor que indica se a condição é atendida. A implementação dessa propriedade não deve ler a Mode propriedade.

Mode

Obtém o modo de condição.

(Herdado de ConditionBaseAttribute)
TimeoutSeconds

Obtém ou define o número máximo de segundos para aguardar a saída do executável quando Arguments for fornecido. Um valor menor ou igual a 0 significa que não há tempo limite. O padrão é 30 segundos.

Aplica-se a