Google is committed to advancing racial equity for Black communities. See how.
本頁面由 Cloud Translation API 翻譯而成。
Switch to English

添加新的本機測試示例

如果您不熟悉Android平台開發,則可能會發現從頭開始添加全新的本機測試的完整示例對演示所涉及的典型工作流程很有用。此外,如果您還不熟悉C ++的gtest框架,請查看gtest項目站點以獲取其他文檔。

本指南使用以下測試作為示例:

你好世界原生測試

建議先瀏覽代碼以大致了解,然後再繼續。

確定來源位置

通常,您的團隊將已經建立了檢入代碼和添加測試的位置的模式。大多數團隊擁有單個git存儲庫,或與其他團隊共享一個git存儲庫,但是擁有一個包含組件源代碼的專用子目錄。

假設<component source root>位於<component source root> ,大多數組件下都有srctests文件夾,以及一些其他文件,例如Android.mk (或分解為其他.bp文件)。

由於您要添加全新的測試,因此可能需要在組件src旁邊創建tests目錄,並在其中填充內容。

在某些情況下,由於需要將不同的測試套件打包到單個二進製文件中,因此您的團隊可能正在tests其他目錄結構。在這種情況下,您需要在tests下創建一個新的子目錄。

為了說明這一點,這是帶有單個tests文件夾的組件的典型目錄概述:

\
 <component source root>
  \-- Android.bp (component makefile)
  \-- AndroidTest.xml (test config file)
  \-- src (component source)
  |    \-- foo.cpp
  |    \-- ...
  \-- tests (test source root)
      \-- Android.bp (test makefile)
      \-- src (test source)
          \-- foo_test.cpp
          \-- ...

這是具有多個測試源目錄的組件的典型目錄概述:

\
 <component source root>
  \-- Android.bp (component makefile)
  \-- AndroidTest.xml (test config file)
  \-- src (component source)
  |    \-- foo.cpp
  |    \-- ...
  \-- tests (test source root)
      \-- Android.bp (test makefile)
      \-- testFoo (sub test source root)
      |   \-- Android.bp (sub test makefile)
      |   \-- src (sub test source)
      |       \-- test_foo.cpp
      |       \-- ...
      \-- testBar
      |   \-- Android.bp
      |   \-- src
      |       \-- test_bar.cpp
      |       \-- ...
      \-- ...

無論採用哪種結構,最終都將使用與示例gerrit更改的native目錄中的文件類似的文件填充到tests目錄或新創建的子目錄中。以下各節將詳細解釋每個文件。

源代碼

有關示例,請參見Hello World本機測試

帶註釋的源代碼如下所示:

#include <gtest/gtest.h>

頭文件包括用於gtest。請注意,通過在makefile中使用BUILD_NATIVE_TEST可以自動解決包含文件的依賴性

#include <stdio.h>

TEST(HelloWorldTest, PrintHelloWorld) {
    printf("Hello, World!");
}

gtests是使用TEST宏編寫的:第一個參數是測試用例名稱,第二個參數是測試名稱;在結果儀表板中可視化時,它們與測試二進制名稱一起形成下面的層次結構:

<test binary 1>
| \-- <test case 1>
| |   \-- <test 1>
| |   \-- <test 2>
| |   \-- ...
| \-- <test case 2>
| |   \-- <test 1>
| |   \-- ...
| \-- ...
<test binary 2>
|
...

有關使用gtest編寫測試的更多信息,請參見其文檔:

  • https://github.com/google/googletest/blob/master/googletest/docs/Primer.md

簡單的配置文件

每個新的測試模塊必須具有一個配置文件,以使用模塊元數據,編譯時依賴性和打包指令來指導構建系統。在大多數情況下,基於Soong的藍圖文件選項就足夠了。有關詳細信息,請參見簡單測試配置

複雜的配置文件

要改用Trade Federation,請為Android的測試工具Trade Federation編寫一個測試配置文件。

測試配置可以指定特殊的設備設置選項和默認參數以提供測試類。

本地構建和測試

對於最常見的用例,請使用Atest

對於需要大量定制的更複雜的情況,請遵循儀器說明