換購選項處理方式

選項處理方式是以貿易聯盟模組化的方式為核心。尤其是 也就是開發人員、整合商和測試執行者在沒有 因此不必複製彼此的工作簡單來說,實作選項處理功能可讓 開發人員將 Java 類別成員標示為可設定,這時該成員的值就會 可能會由整合商擴增或覆寫,且隨後可能會擴充或覆寫 測試執行器此機制適用於所有 Java 內建函式型別,也適用於所有 內建函式類型的 MapCollection

注意:選項處理機制僅適用於實作 測試生命週期中包含的介面,且只有在該類別符合下列條件時: 會由生命週期機器執行個體化

開發人員

首先,開發人員標記了 @Option 註解。 它們至少指定 namedescription 值, 指定與該選項相關聯的引數名稱,以及將顯示於 透過 --help--help-all 指令執行指令。

舉例來說,假設我們要建立功能齊全的電話測試,讓每個測試工具 電話號碼,且預期在之後收到每組號碼時,都會收到一連串的 DTMF 音調 以獲得最佳效能和最安全的連線

public class PhoneCallFuncTest extends IRemoteTest {
    @Option(name = "timeout", description = "How long to wait for connection, in millis")
    private long mWaitTime = 30 * 1000;  // 30 seconds

    @Option(name = "call", description = "Key: Phone number to attempt.  " +
            "Value: DTMF to expect.  May be repeated.")
    private Map<String, String> mCalls = new HashMap<String, String>;

    public PhoneCallFuncTest() {
        mCalls.add("123-456-7890", "01134");  // default
    }

如此一來,「開發人員」就能為 測試。然後他們可以照常使用 mWaitTimemCalls。 我就不用特別注意它是可以設定的由於 @Option 欄位是在類別例項化之後、但早於 系統會呼叫 run 方法,讓實作項目輕鬆設定 或對 MapCollection 欄位執行某種篩選, 否則請設為「僅限附加」

整合服務商

整合商在設定 (以 XML 編寫) 的環境中運作。設定格式 整合商可設定 (或附加) 任何 @Option 欄位的值。舉例來說: 假設整合商想定義低延遲測試來呼叫預設數值,也可以 視為呼叫各種數字的長期測試他們可以建立一組設定 可能如下所示:

<?xml version="1.0" encoding="utf-8"?>
<configuration description="low-latency default test; low-latency.xml">
    <test class="com.example.PhoneCallFuncTest">
        <option name="timeout" value="5000" />
    </test>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<configuration description="call a bunch of numbers; many-numbers.xml">
    <test class="com.example.PhoneCallFuncTest">
        <option name="call" key="111-111-1111" value="#*#*TEST1*#*#" />
        <option name="call" key="222-222-2222" value="#*#*TEST2*#*#" />
        <!-- ... -->
    </test>
</configuration>

測試執行工具

「測試執行工具」也可以透過貿易聯盟控制台存取這些設定點。 首先最重要的是,他們會使用 run command <name> 指示 (簡稱 run <name>)。 除此之外,在指令中可以指定任何引數清單,且這些引數可能會以 附加在每項設定中由生命週期物件指定的欄位。

如要使用 many-numbers 電話號碼執行低延遲測試,測試執行者是 就可以執行:

tf> run low-latency.xml --call 111-111-1111 #*#*TEST1*#*# --call 222-222-2222 #*#*TEST2*#*#

或者,為了從相反方向獲得類似的效果,測試執行器可能會縮短等待時間 ,用於 many-numbers 測試:

tf> run many-numbers.xml --timeout 5000

選項排序

您可能會發現,基礎實作的 call 選項為 Map 因此,在指令列中重複 --call 時,所有項目都會儲存起來。

timeout 選項,具有 long 的基礎實作。 只能儲存一個值。因此,系統只會儲存最後一個指定的值。 --timeout 5 --timeout 10 會產生包含 10 的 timeout

如果使用 ListCollection 做為基礎實作 系統會按照指令列中指定的順序儲存所有值。

布林值選項

您可以直接將true 選項名稱 (例如 --[option-name]) 可設為 false 語法 --no-[option-name]

另請參閱

將選項傳遞至套件和模組