對於 TestStand 中的步驟,Status Expression設置屬性
Step.Result.Status的值。該屬性是字串類型,定義了測試執行期間的整體步驟狀態。預設情況下,TestStand 可以為Status Expression分配以下值: "Done", "Skipped", "Passed", "Failed", 和 "Error",,但您可以為該屬性指定任何字串。
要修改步驟的Status Expression,請點擊 Steps Pane中的步驟,然後查看如下面的Step Settings Pane。確保選中Properties選項卡,然後點擊Expressions列表項,如圖所示:
與所有其他 TestStand 的Status Expression一樣,Status Expression 字段可以接受以逗號分隔的多個表達式。請注意,如果使用多個表達式,則最後一個表達式的結果將分配給Step.Result.Status 。請記住, Step.Result.Status是一個字串值——如果最後一個表達式的計算結果不是字串,則會發生錯誤。
讓我們看看 TestStand 在幕後對 Status Expression 字段做了什麼。舉個例子:
TestStand 將獲取Status Expression字段的內容並執行以下分配:
Step.Result.Status = Evaluate(“Locals.x == Locals.y ? \"Passed\" : \"Failed\"”)
請注意在內引號之前添加的反斜杠。 Evaluate( exprString ) 接受一個字串類型的輸入,內引號前的反斜杠(或轉義字符)確保引號字符是字串的一部分,而不會過早結束它。
測試步驟類型,例如Pass/Fail Test ,將包括一個不可編輯的狀態表達式:
這是在Status Expression字段中使用多個表達式的一個很好的例子。第一個表達式將設置步驟的 PassFail 屬性等於其 DataSource 屬性:
Step.DataSource != "Step.Result.PassFail" ? Step.Result.PassFail = Evaluate(Step.DataSource) : False
下一個表達式,即最後一個被順序計算的表達式,將計算為“Passed” 或 “Failed"的字串。TestStand 將在內部計算該表達式,如下所示:
Step.Result.Status = Evaluate(“Step.Result.PassFail ? \"Passed\" : \"Failed\"”)
注意:如上例所示,條件表達式運算符 ? :, 經常用在Status Expression中。查看 TestStand 手冊的Expression Operators部分以獲取更多信息。