Python 測試

Fuchsia 中的主機端 Python 測試會透過 fx test、CI 和 CQ 執行,並使用 Fuchsia 供應的 Python 解譯器 (fuchsia-vendored-python)。

定義主機測試

使用 python_host_test GN 範本定義測試目標。

測試 .py 檔案必須使用標準 Shebang:

#!/usr/bin/env fuchsia-vendored-python

範例 BUILD.gn

import("//build/python/python_host_test.gni")

if (is_host) {
  python_host_test("my_script_test") {
    main_source = "my_script_test.py"
    sources = [ "test_helper.py" ]
    libraries = [ "//path/to/library:lib" ]
  }
}

group("tests") {
  testonly = true
  public_deps = [ ":my_script_test($host_toolchain)" ]
}

重要 GN 參數

  • main_source:(必要) 主要 .py 測試進入點的路徑。
  • libraries:(選用) 測試匯入的 python_library 標籤清單。
  • enable_mypy:(選用) 啟用 MyPy 靜態型別檢查。預設為 true

執行測試

使用 fx test 在本機執行測試:

fx test //path/to/my_test:my_script_test