JAR (Java) 主機測試

應實施 JAR 主機測試以提供軟件的完整代碼覆蓋率。按照說明構建本地單元測試。編寫小型單元測試來驗證特定功能,僅此而已。

例子

以下藍圖文件提供了一個簡單的 Hello World JAR 主機測試示例以復制並適應您的需求: platform_testing/tests/example/jarhosttest/Android.bp

這對應於在以下位置找到的實際測試代碼: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

為方便起見,此處包含藍圖文件的快照:

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

    srcs: ["test/**/*.java"],

    static_libs: [
        "junit",
        "mockito",
    ],
}

開頭的java_test_host聲明表明這是一個 JAR 主機測試。查看它的使用示例: frameworks/base/tools/powermodel/Android.bp

設置

有關以下設置的說明,請參見下文:

  • 指定java_test_host模塊類型時需要name設置(在塊的開頭)。此設置為您的模塊命名,生成的 JAR 具有相同的名稱和.jar後綴。在下面的示例中,生成的測試 JAR 名為HelloWorldHostTest.jar 。此外,此設置還為您的模塊定義了一個 make 目標名稱,以便您可以使用make [options] <HelloWorldHostTest>來構建您的測試模塊及其所有依賴項。

    name: "HelloWorldHostTest",
    
  • test_suites設置使 Trade Federation 測試工具可以輕鬆發現測試。這裡可以添加其他的測試套件,比如CTS,這樣JAR主機測試測試就可以共享了。

    test_suites: ["general-tests"],
    
  • static_libs設置指示構建系統將命名模塊的內容合併到當前模塊的生成 APK 中。這意味著每個命名模塊都應生成一個.jar文件。該模塊的內容用於在編譯期間解析類路徑引用並合併到生成的 APK 中。

    static_libs: [
        "junit",
    ],