ffx test run
指令可在 Fuchsia 裝置上執行測試,並收集
測試結果和診斷資訊
概念
ffx test run
指令會執行與
Fuchsia 測試執行元件:可定義測試案例
並在 Fuchsia 元件中實作
在 Fuchsia 裝置上執行測試元件時, 步驟如下:
- 將程式碼、元件和套件定義編譯成 Fuchsia 套件。
- 將套件提供給目標裝置。
- 在目標裝置上執行測試元件。
ffx test
指令只會處理步驟 3。步驟 1 和 2 本身需要
以及建構系統的相關知識,ffx test
的設計宗旨為
建構系統的方法
圖 1. 顯示 ffx test
與其他工具的配合方式的流程圖
常用於編譯和執行測試
ffx test
指令旨在提供使用
而這些工具通常會執行特定於建構系統的測試
或是開發環境本頁記錄的工作流程主要適用於
開發人員必須負責開發這類高階工具身為測試作者
想瞭解如何在特定專案中執行測試
請參閱專案存放區的說明文件如要在
Fuchsia 來源結帳 (fuchsia.git
),請參閱 fx test
說明文件。
不過在極少數的情況下,您可能需要直接叫用 ffx test
才能使用
這裡沒有高階工具提供的選項此外,專案可能需要
以支援 ffx test
不支援的其他類型測試,例如主機測試。
高階測試指令碼可以直接處理這些問題,也可以委派
承擔其他工具應具備的責任舉例來說,fx test
適用於
Fuchsia SDK 中 fuchsia.git
和 bazel test
開發的程式。
執行測試元件
如要在目標裝置上執行測試元件,請執行下列指令:
ffx test run TEST_COMPONENT_URL
將 TEST_COMPONENT_URL 替換為目標測試元件網址。
下列範例指令會在下列位置的 example.cm
元件中執行測試:
目標裝置:
$ ffx test run fuchsia-pkg://fuchsia.com/example#example.cm
使用篩選器執行特定測試案例
如要在測試元件中選擇性執行測試案例,請執行下列指令 指令:
ffx test run TEST_COMPONENT_URL --test-filter FILTERS
更改下列內容:
- TEST_COMPONENT_URL:目標測試元件網址。
- FILTERS - 比對測試案例的模式。
--test-filter
選項中提供的篩選器將會比對下列項目:
glob 模式只有符合至少一個模式的測試案例,才會執行。
舉例來說,假設某個套件包含測試案例 Foo.Test1
、Foo.Test2
、
Bar.Test1
和 Bar.Test2
,下列指令只會執行 Foo.Test1
和
Foo.Test2
:
$ ffx test run fuchsia-pkg://fuchsia.com/example#example.cm --test-filter Foo.*
如要指定排除篩選器,請在前方加上 -
。陰性時
篩選器指定時,系統會排除符合排除篩選器的測試案例。
舉例來說,如果使用與上述套件相同的套件,以下指令只會執行
Bar.Test1
和 Bar.Test2
:
$ ffx test run fuchsia-pkg://fuchsia.com/example#example.cm --test-filter -Foo.*
--test-filter
選項可以多次指定。行為
方法如下:
- 如果沒有指定篩選器,就會執行所有測試案例。
- 如果只指定正數篩選器,則至少會比對一個測試案例
- 如果只指定排除篩選器,則測試案例均不與 篩選器會在執行時
- 如果您同時指定正數和負數篩選器,則兩個相符的測試案例 系統會執行至少一個正向篩選器,但不符合任何排除篩選器。
如果使用與上述套件相同的套件,下方的範例指令只會執行
Foo.Test2
:
$ ffx test run fuchsia-pkg://fuchsia.com/example#example.cm --test-filter Foo.* --test-filter -*.Test1
使用引數執行測試
如要在測試元件中將引數傳遞至測試,請執行下列指令: 指令:
ffx test run TEST_COMPONENT_URL -- ARGS
更改下列內容:
- TEST_COMPONENT_URL:目標測試元件網址。
- ARGS:要傳遞至測試的引數。
以下範例指令會將引數 hello
和 1234
直接傳遞至
測試:
$ ffx test run fuchsia-pkg://fuchsia.com/example#example.cm -- hello 1234
執行測試並儲存結構化結果
ffx test run
支援在機器可讀取的機器中列印並儲存測試結果
格式,適合其他工具使用 (請參閱
測試輸出格式)。
如要在執行測試後儲存結構化測試結果,請執行下列指令 指令:
ffx test run TEST_COMPONENT_URL --output-directory DIR
更改下列內容:
- TEST_COMPONENT_URL:目標測試元件網址。
- DIR:用於儲存結構化測試結果的目錄。
下列範例指令會將輸出內容儲存在 /tmp/ffx-out
目錄中:
$ ffx test run fuchsia-pkg://fuchsia.com/example#example.cm --output-directory /tmp/ffx-out
附錄
傳回代碼
如果測試成功執行,ffx test run
會傳回 0,案例則傳回非零
失敗。ffx test run
支援多種特殊錯誤代碼:
名稱 | 結束代碼 | 說明 |
---|---|---|
設定失敗 | 28 | 無法在目標裝置上連線至必要通訊協定 |
逾時 | 21 | 因逾時而執行測試失敗 |
訊號中斷
傳遞 SIGINT
時,一般做法是按下 Ctrl+C
輸入
終端機,ffx test run
會嘗試安全停止執行中的作業
測試並儲存結果
實驗功能
ffx test run
支援多項實驗功能。這些功能
否則模型可能會遭到破壞性變更或移除使用實驗功能需要
將對應的 ffx config
欄位設為 true
,即可選擇採用。詳情請見
如需可用的實驗功能和相關資訊,請ffx test run --help
。
如何選擇採用。