可測試性
可測試性相關資訊:
景觀測試套件
您可以按照下列方式指定套件:
全部:
--with //bundles/tests
個別的話,如要建立較少套件:
--with //src/ui:tests --with //src/ui/lib/escher:escher_tests
風景與業務聯絡人
每當 Fuuchsia 發生變更時, trybot 會在提交前自動執行測試。請參閱 https://ci.chromium.org/p/fuchsia/builders 中的 fuchsia-x64-release
和 fuchsia-x64-asan
機器人。
在現有的 CQ 測試中新增測試套件
大部分的景觀和 Escher 測試都是以 Googletest 編寫。如果您需要新增測試套件或測試案例,您必須建立測試來源檔案,並將其新增為對應 BUILD.gn
檔案中測試執行檔的來源。
將測試套件新增至 CQ
如要將測試套件新增至 CQ,您需要:
- 建立測試元件;
- 參考測試套件;
- 指定測試環境。
建立測試元件
如要新增測試套件至 CQ,您必須建立測試元件,包括來源檔案、中繼資料和 BUILD.gn 檔案。請參閱「測試元件」。您可以在單一測試套件中納入多個測試執行檔,如果您在主機上執行 fx test <test_package>
,系統就會執行所有測試執行檔。
測試套件範例:
- allocation_unittests: //src/ui/scenic:allocation_unittests
- escher_tests: //src/ui/lib/escher:escher_tests
參照測試套件
為確保測試在 CQ 上執行,您必須建立未中斷的依附元件鏈結,該鏈結會匯總至 fx set
指令的可用套件 (使用 --with
標記展開),通常會通過 //bundles/packages/tests:all
的所有目標。
您必須確認測試套件有從 //bundles/packages/tests:all
的依附元件鏈結。詳情請參閱「測試常見問題說明文件」。
指定測試環境
為確保測試在 CQ 上執行,您還需要為測試 BUILD.gn
檔案內套件中的每個測試執行檔指定測試環境。
一般來說,環境會設為 environments = basic_envs
。這會指定在 QEMU (arm64)、FEMU 和 NUC (適用於 x64) 執行測試,並同時使用偵錯版本和發布子版本。如要在其他環境中執行,請參閱「測試環境」。
間接參照測試套件。舉例來說,上述套件是由 //bundles/packages/tests:all
透過 //bundles/packages/tests:scenic
參照。
單元測試與整合測試
如要在開發期間在本機執行測試,請按照下列步驟操作:
在裝置/模擬器中執行
其中有些測試需要測試 View 才能連線至實際的顯示控制器。
執行 fx shell killall scenic.cm
可終止有效的 View 執行個體。
執行所有景觀測試:
在主機工作站上,確認
fx serve
正在執行,然後:fx test \ escher_tests \ allocation_unittests \ display_unittests \ flatland_unittests \ flatland_buffers_unittests \ flatland_display_compositor_pixeltests \ flatland_display_compositor_pixeltests_with_fake_display \ flatland_engine_unittests \ flatland_renderer_unittests \ input_unittests \ scenic_unittests \ scheduling_unittests
或者來自 Fuchsia 目標裝置:
runtests --names escher_unittests,input_unittests,a11y_manager_apptests
執行特定測試二進位檔:
在主機工作站上,確認
fx serve
正在執行,然後使用下列指令執行escher_unittests
測試元件:fx test escher_unittests
在元件中執行單一測試:
在主機工作站上,確認
fx serve
正在執行,然後:fx test escher_unittests -- --gtest_filter=NoOpMacTest.DummyTestCase
詳情請參閱篩選器引數的 glob 模式說明文件。
執行特定元件
從主機工作站:
fx test fuchsia-pkg://fuchsia.com/escher_unittests#meta/escher_unittests.cm
主機測試
fx test --host
會執行所有主機測試,但您可能只想執行 Escher 測試。- Escher:如要在 Linux 本機上執行
escher_unittests
,請按照 Escher 說明文件中的指示操作。
手動 UI 測試
進行大幅的 View 變更後,建議您執行一些範例應用程式,查看是否有任何迴歸問題,以便手動測試 UI。
UI 範例
以下列舉幾個範例:
- flatland-view-provider
- 提供
ViewProvider
及使用 Flatland 指令建立 UI 的基本範例。 - 資料來源:
//src/ui/examples/flatland-view-provider
- 建構依附元件:
//src/ui/examples/flatland-view-provider
- 套件 URI:
fuchsia-pkg://fuchsia.com/flatland-examples#meta/flatland-view-provider.cm
- 提供
如要執行這些應用程式,您必須在 fx set
設定中加入以下依附元件:
fx set workstation_eng.x64 --with "//src/ui/examples"
執行使用者介面範例
在殼層中執行
您可以在自己使用的任何殼層中啟動故事 (模組):
在 Ermine 殼層中,您可以在 [ASK] 列中輸入套件名稱 (例如
flatland-view-provider
),以執行模組。您也可以使用指令
ffx session add <component_name>
指令在殼層啟動元件。在主機工作站,執行:
fx session add "fuchsia-pkg://fuchsia.com/flatland_examples#meta/flatland-view-provider.cm"
顯示
flatland-view-provider
元件中提供的View
。