ランタイム パラメーター
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。 たとえば、クラス内の少なくとも 1 つのテストがブロックされても、テストが失敗しなかった場合、結果は "Blocked" になります (クリーンアップ関数でのみ使用できます)。
テストからのランタイム パラメーターへのアクセス
ネイティブ テスト
ランタイム パラメーターは、セットアップ、クリーンアップ、およびテストのメソッドで使用できます。 それらを取得するには、RuntimeParameters::TryGetValue API を使用します。
String value;
VERIFY_SUCCEEDED(RuntimeParameters::TryGetValue(L"ParameterName3", value));
注: テストからランタイム パラメーターを要求するには、Te.Common.lib ライブラリにリンクする必要があります。
管理テスト
ランタイム パラメーターは、セットアップおよびテストのメソッドで使用できます。 それらを取得するには、クラスの 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("<ランタイム パラメーター名>") メソッドを使用して、ランタイム パラメーターが指定されたかどうかと、テストで使用できるかどうかのクエリを実行できます。 true が返された場合は、RuntimeParameters.GetValue("<ランタイム パラメーター名>") を使用して取得できます。 ランタイム パラメーターが使用できない場合は、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>