執行時間參數
TAEF 提供將執行時間參數傳遞至其執行之測試的功能。
使用
若要將參數傳遞至測試,請提供此參數以下列形式te.exe為命令列參數:
Te.exe /p:ParameterName1=ParameterValue1 /p:ParameterName2=ParameterValue2
如果參數值包含空格,請在參數名稱和參數值周圍加上引號:
Te.exe /p:"ParameterName3=The quick brown fox jumps over the lazy dog"
內建參數
TAEF 具有下列執行時間參數的內建支援:
- TestDeploymentDir:測試二進位目錄。
- TestName:目前正在執行的測試名稱。
- FullTestName:測試的完整名稱,包括變化限定詞。 這是 TAEF 針對 StartGroup 和 EndGroup 記錄的名稱。
- TestResult:此清除函式範圍內執行之測試的最差案例結果。 為了從最佳到最差:Passed、NotRun、Skipped、Blocked、Failed。 例如,如果您的類別中至少有一個測試遭到封鎖,但沒有測試失敗,結果將會是「封鎖」, (只能在 Cleanup 函式中使用) 。
從測試存取執行時間參數
原生測試
執行時間參數可在安裝程式、清除和測試方法中使用。 使用 RuntimeParameters::TryGetValue API 來取得它們:
String value;
VERIFY_SUCCEEDED(RuntimeParameters::TryGetValue(L"ParameterName3", value));
注意:若要向測試要求執行時間參數,您必須針對 Te.Common.lib 程式庫連結。
Managed 測試
執行時間參數可在安裝和測試方法中使用。 若要取得它們,請使用 類別的 TestCoNtext 屬性。
範例 (類別或元件安裝) :
[ClassInitialize]
public static void ClassSetup(TestContext context)
{
String parameterName3 = context.Properties["ParameterName3"];
}
同樣地,從測試:
[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; }
}
腳本測試
執行時間參數可在安裝、清除和測試方法中使用。 若要擷取執行時間參數,請從 Te.Common 定義並具現化 RuntimeParameters 物件:
<object id="RuntimeParameters" progid="Te.Common.RuntimeParameters" />
具現化 RuntimeParameters 物件之後,您可以使用 RuntimeParameters.Contains (「 < runtime 參數名稱 > 」) 方法來查詢是否提供執行時間參數,而且可供測試使用。 如果傳回 true,您可以使用 RuntimeParameters.GetValue (「 < runtime 參數名稱 > 」) 來擷取它。 請注意,如果執行時間參數無法使用,RuntimeParameters.GetValue (...) 將會擲回。 下列範例來自 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>