Compartilhar via


Parâmetros de runtime

O TAEF fornece funcionalidade para passar parâmetros de runtime para os testes executados.

Uso

Para passar um parâmetro para o teste, forneça esse parâmetro para te.exe como um parâmetro de linha de comando no seguinte formulário:

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

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

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

Parâmetros internos

O TAEF tem suporte interno para os seguintes parâmetros de runtime:

  • 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. Esse é o nome que o TAEF registra em log para StartGroup e EndGroup.
  • TestResult: o resultado de pior caso agregado de testes executados dentro do escopo dessa função de Limpeza. Na ordem do melhor para o pior: Passado, NotRun, Ignorado, Bloqueado, Com Falha. Por exemplo, se pelo menos um teste em sua classe foi bloqueado, mas nenhum teste falhou, o resultado será "Bloqueado" (disponível apenas em funções de limpeza).

Acessando parâmetros de runtime de testes

Testes nativos

Os parâmetros de runtime 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));

Observação: para solicitar parâmetros de runtime de seus testes, você precisará vincular-se à biblioteca Te.Common.lib.

Testes Gerenciados

Os parâmetros de runtime estão disponíveis em métodos de instalação e teste. Para obtê-los, use a propriedade TestContext de sua classe.

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

[ClassInitialize]

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

}

Da mesma forma, em um 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 runtime estão disponíveis nos métodos de instalação, limpeza e teste. Para recuperar parâmetros de runtime, defina e instancie o objeto RuntimeParameters de Te.Common:

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

Depois que o objeto RuntimeParameters for instanciado, você poderá usar o método RuntimeParameters.Contains("<runtime parameter name>") para consultar se um parâmetro de runtime foi fornecido e está disponível para o teste. Se ele retornar true, você poderá usar RuntimeParameters.GetValue("<nome> do parâmetro de runtime") para recuperá-lo. Observe que RuntimeParameters.GetValue(...) será lançado se o parâmetro de 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>