本指南說明如何使用 fx test 執行 Fuchsia 測試
指令
在 Fuchsia 中,測試可以是在 Fuchsia 裝置上執行的元件 (請參閱 以元件形式進行測試) 或獨立執行的可執行檔 相同的虛擬機器
如要執行 Fuchsia 測試,請使用 fx test 指令搭配測試名稱:
fx test <TEST_NAME>如果 TEST_NAME 是測試元件,fx test 會連線至您的 Fuchsia 裝置
載入並執行測試元件也就是說,這個指令會尋找元件的
對應的元件 URI 並呼叫 ffx test
run。不過,如果 TEST_NAME 是主機測試,請直接 fx test
會叫用測試二進位檔,以便在主體機器上執行。
與主機測試類似,端對端測試也會在主體機器上執行。測試
然後可能會在 Fuchsia 裝置上與各種服務互動,以便進行測試
(請參閱「Scripting Layer for Fuchsia」)。如要在
請在端對端測試中為 fx test 提供額外標記 (--e2e):
fx test --e2e <END_TO_END_TEST_NAME>自訂叫用
fx test 可以一次執行多項測試或測試套件。這個指令也可以
篩選測試,區分為裝置、主機或端對端測試。
如要自訂 fx test,您可以新增旗標並提供
數量:
fx test <FLAGS> <TEST_NAME_01> <TEST_NAME_02> ...以下各節說明自訂 fx test 的常見方式。
執行多項測試
如要執行多組 Fuchsia 測試,請設定 Fuchsia 版本 加入多個主要測試套裝組合,建構 Fuchsia,然後執行 容器中的所有測試項目例如:
fx set core.x64 --with //bundles/tools,//bundles/tests
fx build
fx test
您也可以在單一叫用中提供多個目標:
fx test <PACKAGE_01> <PACKAGE_02> <COMPONENT_01> <COMPONENT_02>如需詳情,請參閱透過多種方式指定測試。 您可透過多種方式指定測試
將引數傳遞至測試
使用 -- 旗標傳遞其他引數以測試元件。
以下範例會將 arg 標記傳遞至測試:
fx test <TEST_NAME> -- --arg=5舉例來說,上述指令會在內部呼叫下列指令:
fx ffx test run <TEST_COMPONENT_URI> -- --arg=5透過多種方式指定測試
fx test 支援多種參照特定測試的方式:
主機測試路徑
若是主機測試,請提供從
Fuchsia 版本輸出目錄。如果路徑指向子目錄,而不是
檔案,fx test 會執行該目錄中所有相符的測試二進位檔。
舉例來說,您可以提供相對路徑來指定測試二進位檔:
fx test host_x64/pm_cmd_pm_genkey_test或者,您也可以提供測試目錄的相對路徑:
fx test host_x64/gen/sdk套件網址
請提供完整的 Fuchsia 元件網址來指定測試 元件。例如:
fx test fuchsia-pkg://fuchsia.com/my_example_test_pkg#meta/my_example_test.cm請提供部分套件網址,以便比對並執行 以及所提供的 Fuchsia 套件網址。例如:
fx test fuchsia-pkg://fuchsia.com/my_example_test_pkg套件名稱
提供用來執行所有測試元件的套件名稱 該套件。例如:
fx test my_example_test_pkg如要明確將輸入內容指定為套件名稱,請使用 -p 標記。例如:
fx test -p my_example_test_pkg元件名稱
提供元件名稱 (或資源路徑) 來測試單一元件 套件內元件例如:
fx test my_example_test如要明確將輸入內容指定為元件名稱,請使用 -c 標記。例如:
fx test -c my_example_test如要在特定套件中執行元件,請同時使用 -p <PACKAGE_NAME> 和 -c
<COMPONENT_NAME>。例如:
fx test -p my_example_test_pkg -c my_example_test設定最低記錄嚴重性
fx test (以及基礎 ffx test) 接受「--min-severity-logs」標記,讓您能夠
設定測試和測試元件所發出的記錄最低嚴重性。
如果測試或底下的元件使用支援設定動態功能的記錄程式庫
記錄嚴重性 (Fuchsia Rust 和 C++ 記錄程式庫支援)。適用於不支援
支援這項功能,test_manager 會手動篩選記錄,前提是測試輸出記錄為
嚴重性低於您設定的下限
這個標記接受兩種定義最小嚴重性的方法:
- <severity>:- FATAL、- ERROR、- WARN、- INFO、- DEBUG或- TRACE其中之一。這適用於記錄檔 產生的值。
- <component selector>#<severity>,其中- <component selector>會指定測試底下的一組元件 (例如- foo/bar),而嚴重性是 的嚴重程度
以下列舉幾個例子:
- --min-severity-logs DEBUG:指示測試和測試中的所有元件發出指令 嚴重性為- DEBUG以上的記錄。這等同於使用元件選取器:- --min-severity-logs **#DEBUG
- --min-severity-logs a#DEBUG --min-severity-logs b/c#ERROR:測試- a底下的元件 會發出嚴重性為- DEBUG以上的記錄,而測試- b/c下的元件會發出 嚴重性為 ERROR 以上。測試本身產生的記錄會使用預設的最低嚴重性。
- --min-severity-logs '<root>#DEBUG':系統會指示測試產生嚴重性為- DEBUG的記錄 或是更高等級的,但其下的元件會使用其預設的最小嚴重性來發出記錄。
- --min-severity-logs foo/*/bar#ERROR:- foo子項之下所有名為- bar的元件,其中包含 並輸出嚴重性為- ERROR以上的記錄檔。例如- foo/a/bar和- foo/baz/bar會受到影響,但測試元件、- foo/bar和- a/b則不受影響。
從執行主機測試轉換
fx run-host-tests 和 fx run-e2e-tests 指令正在
並改用 fx test請參閱下列操作說明
並使用 fx test 取代下列指令:
fx test <NESTED_COMPONENT_NAME>run-host-tests
將 fx run-host-tests 替換成 fx test。
從:
fx run-host-tests <PATH_TO_HOST_TEST>到:
fx test <PATH_TO_HOST_TEST>執行-e2e-測試
將 fx run-e2e-tests 替換成 fx test 和額外的 --e2e 標記。
從:
fx run-e2e-tests <END_TO_END_TEST>到:
fx test --e2e <END_TO_END_TEST>以測試為導向開發
fx smoke-test 指令會自動偵測所有已知的測試
變更會影響建構系統的建構系統。在此情況下,建議您嘗試下列疑難排解做法:
fx -i smoke-test --verbose在上述指令中,--verbose 也會顯示哪些測試 fx smoke-test
可能會受到影響-i 會自動重複這個指令
每次儲存變更時如要進行測試導向的開發作業,可嘗試啟動
在單獨的殼層中執行這項指令,並觀察您的程式碼將自動建構和重新測試
fx smoke-test 搭配密封測試套件的效果最佳。測試套件為
以確保套件包含所有測試的所有依附元件。
換句話說,任何會影響這項測試結果的程式碼變更,都應
也需要重建測試套件。
檢查測試元件的成果
元件測試可能會產生無法向其他使用者顯示的額外構件
stdout,例如自訂構件和涵蓋範圍設定檔。變更者:
預設值,fx test 會在不發出通知的情況下捨棄這些構件。要查看這些
構件,請使用以下指令將輸出目錄指定為 fx test
--ffx-output-directory。系統會從測試中提取成果
就會儲存到指定的目錄。