Delen via


Runtime parameters

TAEF biedt functionaliteit voor het doorgeven van runtimeparameters aan de tests die worden uitgevoerd.

Gebruik

Als u een parameter wilt doorgeven aan uw test, geeft u deze parameter op te.exe als een opdrachtregelparameter in de volgende vorm:

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

Als de parameterwaarde spaties bevat, plaatst u aanhalingstekens rond de parameternaam en parameterwaarde:

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

Ingebouwde parameters

TAEF biedt ingebouwde ondersteuning voor de volgende runtimeparameters:

  • TestDeploymentDir: De test-binaire-directory.
  • TestName: de naam van de test die momenteel wordt uitgevoerd.
  • FullTestName: De volledige naam van de test, inclusief variatiekwalificaties. Dit is de naam zoals TAEF deze registreert voor StartGroup en EndGroup.
  • TestResult: het geaggregeerde slechtste resultaat van tests die worden uitgevoerd binnen de Cleanup-functie. In volgorde van beste naar slechtst: Geslaagd, NotRun, Overgeslagen, Geblokkeerd, Mislukt. Als bijvoorbeeld ten minste één test in uw klas is geblokkeerd, maar er geen tests zijn mislukt, wordt het resultaat 'Geblokkeerd' (alleen beschikbaar in opschoningsfuncties).

Runtime-parameters openen vanuit tests

Systeemeigen tests

Runtimeparameters zijn beschikbaar in installatie-, opschoon- en testmethoden. Gebruik de RuntimeParameters::TryGetValue-API om deze te verkrijgen:

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

Opmerking: als u runtimeparameters wilt aanvragen bij uw tests, moet u een koppeling maken met de Te.Common.lib-bibliotheek.

Beheerde tests

Runtimeparameters zijn beschikbaar in installatie- en testmethoden. Gebruik de eigenschap TestContext van uw klasse om deze te verkrijgen.

Voorbeeld (opzet van klasse of assemblage):

[ClassInitialize]

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

}

Op dezelfde manier, uit een test:

[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; }
}

Scripttests

Runtimeparameters zijn beschikbaar in de installatie, opschoning en de testmethoden. Als u runtimeparameters wilt ophalen, moet u het RuntimeParameters-object definiëren en instantiëren uit Te.Common:

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

Zodra het RuntimeParameters-object is geïnstantieerd, kunt u de methode RuntimeParameters.Contains("<naam runtimeparameter>") gebruiken om een query uit te voeren als er een runtimeparameter is opgegeven en beschikbaar is voor de test. Als het waar retourneert, kunt u vervolgens RuntimeParameters.GetValue("<runtimeparameternaam>") gebruiken om deze op te halen. Houd er rekening mee dat RuntimeParameters.GetValue(...) wordt veroorzaakt als de runtimeparameter niet beschikbaar is. Het volgende voorbeeld is afkomstig uit ons VBScript-voorbeeld:

<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>