Compartir a través de


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>