Laufzeitparameter
TAEF bietet Funktionen zum Übergeben von Laufzeitparametern an die ausgeführten Tests.
Verwendungszweck
Um einen Parameter an Ihren Test zu übergeben, geben Sie diesen Parameter an te.exe als Befehlszeilenparameter in der folgenden Form an:
Te.exe /p:ParameterName1=ParameterValue1 /p:ParameterName2=ParameterValue2
Wenn der Parameterwert Leerzeichen enthält, setzen Sie Anführungszeichen um Den Parameternamen und den Parameterwert:
Te.exe /p:"ParameterName3=The quick brown fox jumps over the lazy dog"
Integrierte Parameter
TAEF bietet integrierte Unterstützung für die folgenden Laufzeitparameter:
- TestDeploymentDir: Das Binärverzeichnis test.
- TestName: Der Name des Tests, der derzeit ausgeführt wird.
- FullTestName: Der vollständige Name des Tests einschließlich Variationsqualifizierern. Dies ist der Name, den TAEF für StartGroup und EndGroup protokolliert.
- TestResult: Das aggregierte Worst-Case-Ergebnis von Tests, die im Bereich dieser Bereinigungsfunktion ausgeführt werden. In der Reihenfolge vom besten zum schlechtesten: Passed, NotRun, Skipped, Blocked, Failed. Wenn beispielsweise mindestens ein Test in Ihrer Klasse blockiert wurde, aber keine Tests fehlgeschlagen sind, lautet das Ergebnis "Blockiert" (nur in Bereinigungsfunktionen verfügbar).
Zugreifen auf Laufzeitparameter aus Tests
Native Tests
Laufzeitparameter sind in den Setup-, Bereinigungs- und Testmethoden verfügbar. Verwenden Sie die RuntimeParameters::TryGetValue-API, um sie abzurufen:
String value;
VERIFY_SUCCEEDED(RuntimeParameters::TryGetValue(L"ParameterName3", value));
Hinweis: Um Laufzeitparameter aus Ihren Tests anfordern zu können, müssen Sie eine Verknüpfung mit der Te.Common.lib-Bibliothek herstellen.
Verwaltete Tests
Laufzeitparameter sind in Setup- und Testmethoden verfügbar. Verwenden Sie die TestContext-Eigenschaft Ihrer Klasse, um sie abzurufen.
Beispiel (Klassen- oder Assemblyeinrichtung):
[ClassInitialize]
public static void ClassSetup(TestContext context)
{
String parameterName3 = context.Properties["ParameterName3"];
}
In ähnlicher Weise aus einem 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; }
}
Skripttests
Laufzeitparameter sind in den Setup-, Bereinigungs- und Testmethoden verfügbar. Um Laufzeitparameter abzurufen, definieren und instanziieren Sie das RuntimeParameters-Objekt aus Te.Common:
<object id="RuntimeParameters" progid="Te.Common.RuntimeParameters" />
Nachdem das RuntimeParameters-Objekt instanziiert wurde, können Sie die RuntimeParameters.Contains("<Runtimeparametername>") -Methode verwenden, um abzufragen, ob ein Laufzeitparameter angegeben wurde und für den Test verfügbar ist. Wenn true zurückgegeben wird, können Sie RuntimeParameters.GetValue("<Runtimeparametername>") verwenden, um sie abzurufen. Beachten Sie, dass RuntimeParameters.GetValue(...) ausgelöst wird, wenn der Laufzeitparameter nicht verfügbar ist. Das folgende Beispiel stammt aus unserem VBScript-Beispiel:
<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>