共用方式為


執行時間參數

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>