Parámetros en tiempo de ejecución
TAEF proporciona funcionalidad para pasar parámetros en tiempo de ejecución a las pruebas que ejecuta.
Uso
Para pasar un parámetro a la prueba, proporcione este parámetro para te.exe como parámetro de línea de comandos en el siguiente formato:
Te.exe /p:ParameterName1=ParameterValue1 /p:ParameterName2=ParameterValue2
Si el valor del parámetro contiene espacios, coloque comillas alrededor del nombre del parámetro y el valor del parámetro:
Te.exe /p:"ParameterName3=The quick brown fox jumps over the lazy dog"
Parámetros integrados
TAEF tiene compatibilidad integrada con los siguientes parámetros en tiempo de ejecución:
- TestDeploymentDir: directorio binario de prueba.
- TestName: nombre de la prueba que se está ejecutando actualmente.
- FullTestName: el nombre completo de la prueba, incluidos los calificadores de variante. Este es el nombre como TAEF lo registra para StartGroup y EndGroup.
- TestResult: resultado agregado del peor caso de las pruebas ejecutadas dentro del ámbito de esta función Cleanup. En orden de mejor a peor: Pasado, NotRun, Skipped, Blocked, Failed. Por ejemplo, si al menos una prueba de la clase se bloqueó pero no se ha producido ningún error en las pruebas, el resultado será "Bloqueado" (solo disponible en funciones de limpieza).
Acceso a parámetros en tiempo de ejecución desde pruebas
Pruebas nativas
Los parámetros en tiempo de ejecución están disponibles en Los métodos de instalación, limpieza y prueba. Use la API RuntimeParameters::TryGetValue para obtenerlas:
String value;
VERIFY_SUCCEEDED(RuntimeParameters::TryGetValue(L"ParameterName3", value));
Nota: Para solicitar parámetros en tiempo de ejecución de las pruebas, deberá vincular con la biblioteca Te.Common.lib.
Pruebas administradas
Los parámetros en tiempo de ejecución están disponibles en los métodos de instalación y prueba. Para obtenerlos, use la propiedad TestContext de la clase .
Ejemplo (configuración de clase o ensamblado):
[ClassInitialize]
public static void ClassSetup(TestContext context)
{
String parameterName3 = context.Properties["ParameterName3"];
}
Del mismo modo, desde una prueba:
[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; }
}
Pruebas de script
Los parámetros en tiempo de ejecución están disponibles en la configuración, limpieza y los métodos de prueba. Para recuperar parámetros en tiempo de ejecución, defina y cree una instancia del objeto RuntimeParameters de Te.Common:
<object id="RuntimeParameters" progid="Te.Common.RuntimeParameters" />
Una vez creado la instancia del objeto RuntimeParameters, puede usar el método RuntimeParameters.Contains("<runtime parameter name>") para consultar si se proporcionó un parámetro en tiempo de ejecución y está disponible para la prueba. Si devuelve true, puede usar RuntimeParameters.GetValue("<runtime parameter name>") para recuperarlo. Tenga en cuenta que RuntimeParameters.GetValue(...) iniciará si el parámetro en tiempo de ejecución no está disponible. El ejemplo siguiente procede de nuestro ejemplo de 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>