Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Manchmal ist es nützlich, metadatenwerte abhängig von Laufzeitwerten zu ändern. Mit bedingten Metadaten können Modul-, Klassen- oder Methodenmetadaten nur unter bestimmten Bedingungen basierend auf Laufzeitparametern angewendet werden.
Syntax
Um Metadaten bedingt zu machen, fügen Sie eine Bedingung hinzu, die von eckigen Klammern hinter dem Metadatennamen umgeben ist. Die Bedingung muss im Format unserer Auswahlabfragesprache vorliegen. Die Werte für die Variablen stammen aus Laufzeitparametern.
Angenommen, ein Test hat die folgenden Metadaten:
TEST_METHOD_PROPERTY(L"RunAs", L"Elevated")
TEST_METHOD_PROPERTY(L"Ignore[@NoElevation=true]", L"true")
Wenn TAEF die DLL lädt, wird die Bedingung "@NoElevation=true" auf Grundlage der Laufzeitparameter ausgewertet. Wenn der Benutzer also den Laufzeitparameter "NoElevation" auf "true" festlegt, wird für den Test Metadaten mit dem Namen "Ignore" und dem Wert "true" angewendet.
Wenn mehrere bedingte Metadaten in einem Test angezeigt werden, wird jede unabhängig voneinander auf die gleiche Weise ausgewertet. Dies kann hilfreich sein, wenn ein Test mehrere mögliche Werte eines Laufzeitparameters erkennt.
TEST_METHOD_PROPERTY(L"Data:MyTestData[@TestCaseLevel='Low']", L"{ Datum1, Datum2, Datum3 }")
TEST_METHOD_PROPERTY(L"DataSource[@TestCaseLevel='High']", L"Pict:FullDataSet.model?Order=3")
Wenn ein Test die oben gezeigten Metadaten enthält und der Benutzer TestCaseLevel auf "Niedrig" festlegt, wird der Test nur dreimal aufgrund der einfachen Datenquelle aufgerufen. Wenn der Benutzer TestCaseLevel auf "Hoch" festlegt, wird die PICT-Datenquelle verwendet, um viele weitere Parameter für den Test zu generieren. Wenn TestCaseLevel nicht auf "Hoch" oder "Niedrig" festgelegt ist, werden keine Metadaten hinzugefügt.
Standardwerte
Wenn Sie nur dann metadaten hinzufügen möchten, wenn keine anderen Bedingungen für diesen bestimmten Metadatennamen auf "true" ausgewertet wurden, können Sie den Metadatennamen mit [Standard] anfügen.
TEST_METHOD_PROPERTY(L"DataSource", L"Pict:MyTest.model")
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='Low']", L"1")
TEST_METHOD_PROPERTY(L"Pict:Order[default]", L"2")
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='High']", L"3")
Wenn ein Test über die oben genannten Metadaten verfügt und der Benutzer "TestCaseLevel" nicht auf "Niedrig" oder "Hoch" festgelegt hat, wird "Pict:Order" auf "2" festgelegt. Wenn der Benutzer TestCaseLevel auf "Niedrig" oder "Hoch" festlegt, wird "Pict:Order" auf "1" bzw. "3" festgelegt. Der Wert 2 gilt nicht, da mindestens eine Bedingung für diesen Test für Pict:Order auf "true" ausgewertet wurde.
Achten Sie darauf, die [Standardeinstellung] bei Bedarf nicht zu verlassen.
TEST_METHOD_PROPERTY(L"DataSource", L"Pict:MyTest.model")
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='Low']", L"1")
TEST_METHOD_PROPERTY(L"Pict:Order", L"2") // This should have [default]
TEST_METHOD_PROPERTY(L"Pict:Order[@TestCaseLevel='High']", L"3")
Wenn "TestCaseLevel" auf "Niedrig" festgelegt ist, entspricht der obige Metadatensatz den folgenden Metadatensatz:
TEST_METHOD_PROPERTY(L"DataSource", L"Pict:MyTest.model")
TEST_METHOD_PROPERTY(L"Pict:Order", L"1")
TEST_METHOD_PROPERTY(L"Pict:Order", L"2")
In diesem Fall wird nicht angegeben, ob die PICT-Datenquelle die "1" oder die "2" für die PICT-Reihenfolge verwendet.