Partilhar via


Parâmetros de tempo de execução

O TAEF fornece funcionalidade para passar parâmetros de tempo de execução para os testes que executa.

Utilização

Para passar um parâmetro para o teste, forneça esse parâmetro para te.exe como um parâmetro de linha de comando da seguinte forma:

Te.exe /p:ParameterName1=ParameterValue1  /p:ParameterName2=ParameterValue2

Se o valor do parâmetro contiver espaços, coloque aspas em torno do nome e do valor do parâmetro:

Te.exe /p:"ParameterName3=The quick brown fox jumps over the lazy dog"

Parâmetros incorporados

O TAEF tem suporte interno para os seguintes parâmetros de tempo de execução:

  • TestDeploymentDir: O diretório binário de teste.
  • TestName: O nome do teste que está em execução no momento.
  • FullTestName: O nome completo do teste, incluindo qualificadores de variação. Este é o nome que o TAEF regista para StartGroup e EndGroup.
  • TestResult: O resultado agregado do pior caso de testes executados no âmbito desta função de limpeza. Em ordem do melhor para o pior: Aprovado, NãoExecutado, Ignorado, Bloqueado, Reprovado. Por exemplo, se pelo menos um teste na sua classe foi bloqueado, mas nenhum teste falhou, o resultado será "Bloqueado" (disponível apenas nas funções de limpeza).

Acessando parâmetros de tempo de execução a partir de testes

Testes nativos

Os parâmetros de tempo de execução estão disponíveis nos métodos de instalação, limpeza e teste. Use a API RuntimeParameters::TryGetValue para obtê-los:

String value;
VERIFY_SUCCEEDED(RuntimeParameters::TryGetValue(L"ParameterName3", value));

Nota: Para solicitar parâmetros de tempo de execução de seus testes, você precisará vincular a biblioteca Te.Common.lib.

Testes gerenciados

Os parâmetros de tempo de execução estão disponíveis nos métodos de configuração e teste. Para obtê-los, use a propriedade TestContext da sua classe.

Exemplo (configuração de classe ou assemblagem):

[ClassInitialize]

public static void ClassSetup(TestContext context)
{
    String parameterName3  = context.Properties["ParameterName3"];

}

Da mesma forma, num teste:

[TestMethod]

public void VerifyRuntimeParametersTest()
{
    String parameterName3  = m_testContext.Properties["ParameterName3"].ToString());
}

// Note, that to work with runtime parameters, as well as with your tests,  you need to add
// definition of test context property to your class

private TestContext m_testContext;

public TestContext TestContext
{
    get { return m_testContext; }
    set { m_testContext = value; }
}

Testes de script

Os parâmetros de tempo de execução estão disponíveis nos métodos de configuração, limpeza e teste. Para recuperar parâmetros de tempo de execução, defina e instancie o objeto RuntimeParameters de Te.Common:

<object id="RuntimeParameters" progid="Te.Common.RuntimeParameters" />

Depois que o objeto RuntimeParameters é instanciado, você pode usar o método RuntimeParameters.Contains("<runtime parameter name>") para consultar se um parâmetro de tempo de execução foi fornecido e está disponível para o teste. Se retornar true, poderás então usar RuntimeParameters.GetValue("<nome do parâmetro de execução>") para o recuperar. Observe que RuntimeParameters.GetValue(...) será lançado se o parâmetro runtime não estiver disponível. O exemplo a seguir é do nosso exemplo VBScript:

<script language="VBScript">
    <![CDATA[
        Function TestOne()
            dim param
            param = "No runtime param"
            If RuntimeParameters.Contains("param") Then
                    param = RuntimeParameters.GetValue("param")
            End If
            Log.Comment("Param is " + param)

            dim testDir
            If RuntimeParameters.Contains("testDir") Then
                testDir = RuntimeParameters.GetValue("TestDir")
            End If
            Log.Comment("The test harness is running in " + testDir)
        End Function
    ]] >
</script>