Status Expression在 TestStand 中是如何工作的?

更新 Jul 17, 2023

環境

軟體

  • TestStand

本教程讓您更好地了解Status Expression在 TestStand 中的工作方式。

對於 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部分以獲取更多信息。