如果你是 Android 平台開發新手,可能會看到完整內容 新增 GTest 二進位檔 (有時也稱為「原生」檔案) 測試),藉此示範相關典型的工作流程。適用對象 GTest 架構的其他相關資訊 C++,請參閱 GTest 專案 網站。
本指南會以 Hello World GTest 做為範例。建議您詳細閱讀這些程式碼,進一步瞭解 才能繼續操作
決定來源位置
通常您的團隊已建立檢查程式碼的模式,以及新增測試的位置。大多數團隊都擁有單一 git 存放區,或與其他團隊共用一個存放區,但會設有專屬子目錄,用於儲存元件原始碼。
假設元件來源的根目錄位於 <component source
root>
,大多數元件都會在其下方建立 src
和 tests
資料夾,以及一些額外的檔案,例如 Android.mk
(或分割成額外的 .bp
檔案)。
由於您要新增的是全新的測試,因此您可能需要建立
tests
目錄 (位於元件 src
旁邊),並填入內容。
在某些情況下,您的團隊可能會在 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
| \-- ...
\-- ...
無論結構為何,您都會填入 tests
目錄或
新建立的子目錄,其中包含與 native
中的類似檔案
。以下各節將說明
個別檔案的詳細資料
原始碼
請參閱 Hello World GTest 例如,
該範例的原始碼使用以下註解:
#include <gtest/gtest.h>
GTest 的標頭檔案。系統會自動納入 include 檔案依附元件
在 makefile 中使用 BUILD_NATIVE_TEST
解決。
#include <stdio.h>
TEST(HelloWorldTest, PrintHelloWorld) {
printf("Hello, World!");
}
GTest 是使用 TEST
巨集編寫:第一個參數是測試案例
第二個是測試名稱連同測試二進位檔名稱一起建立
下列階層:
<test binary 1>
| \-- <test case 1>
| | \-- <test 1>
| | \-- <test 2>
| | \-- ...
| \-- <test case 2>
| | \-- <test 1>
| | \-- ...
| \-- ...
<test binary 2>
|
...
如要進一步瞭解如何使用 GTest 編寫測試,請參閱 GTest 說明文件
簡易設定檔
每個新的測試模組都必須有設定檔 建構系統,其中包含模組中繼資料、編譯時間依附元件和封裝 操作說明。在大多數情況下,以 Soong 為基礎的藍圖檔案選項就足夠了。詳情請參閱「簡易測試設定」。
複雜的設定檔
如要改用 Trade Federation,請為 Android 的測試套件 Trade Federation 撰寫測試設定檔。
測試設定可以指定特殊的裝置設定選項和預設設定 提供測試類別。
在本機建構及測試
最常見的用途是 Atest。
如需更複雜的做法,且需要更多自訂功能,請按照檢測器操作說明操作。