測試景觀和伴侶

可測試性

可測試性相關資訊:

景觀測試套件

您可以按照下列方式指定套件:

  • 全部:

    --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-releasefuchsia-x64-asan 機器人。

在現有的 CQ 測試中新增測試套件

大部分的景觀和 Escher 測試都是以 Googletest 編寫。如果您需要新增測試套件或測試案例,您必須建立測試來源檔案,並將其新增為對應 BUILD.gn 檔案中測試執行檔的來源。

將測試套件新增至 CQ

如要將測試套件新增至 CQ,您需要:

  • 建立測試元件;
  • 參考測試套件;
  • 指定測試環境。

建立測試元件

如要新增測試套件至 CQ,您必須建立測試元件,包括來源檔案、中繼資料和 BUILD.gn 檔案。請參閱「測試元件」。您可以在單一測試套件中納入多個測試執行檔,如果您在主機上執行 fx test <test_package>,系統就會執行所有測試執行檔。

測試套件範例:

參照測試套件

為確保測試在 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