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>