Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Thêm GoogleTest mới (GTests)

Nếu bạn mới bắt đầu phát triển nền tảng Android, bạn có thể tìm thấy ví dụ hoàn chỉnh này về việc thêm mã nhị phân GTest hoàn toàn mới (đôi khi còn được gọi là thử nghiệm "gốc") hữu ích để chứng minh quy trình công việc điển hình liên quan. Để biết thêm thông tin về khung GTest cho C ++, hãy tham khảo trang web dự án GTest để biết thêm tài liệu.

Hướng dẫn này sử dụng Hello World GTest làm ví dụ. Chúng tôi khuyên bạn nên đọc qua mã để hiểu sơ bộ về nó trước khi tiếp tục.

Quyết định vị trí nguồn

Thông thường, nhóm của bạn sẽ có sẵn một mẫu địa điểm để đăng ký mã và những nơi để thêm các bài kiểm tra. Hầu hết nhóm sở hữu một kho lưu trữ git duy nhất hoặc chia sẻ một kho lưu trữ với các nhóm khác nhưng có một thư mục con chuyên dụng chứa mã nguồn thành phần.

Giả sử vị trí gốc cho nguồn thành phần của bạn là tại <component source root> , hầu hết các thành phần đều có thư mục srctests bên dưới nó và một số tệp bổ sung như Android.mk (hoặc được chia thành các tệp .bp bổ sung).

Vì bạn đang thêm một thử nghiệm hoàn toàn mới, có thể bạn sẽ cần tạo thư mục tests bên cạnh src thành phần của bạn và điền vào nó với nội dung.

Trong một số trường hợp, nhóm của bạn có thể có thêm cấu trúc thư mục trong tests do nhu cầu đóng gói các bộ thử nghiệm khác nhau thành các tệp nhị phân riêng lẻ. Và trong trường hợp này, bạn sẽ cần tạo một thư mục con mới trong tests .

Để minh họa, đây là phác thảo thư mục điển hình cho các thành phần có một thư mục tests duy nhất:

\
 <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
          \-- ...

và đây là phác thảo thư mục điển hình cho các thành phần có nhiều thư mục nguồn thử nghiệm:

\
 <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
      |       \-- ...
      \-- ...

Bất kể cấu trúc như thế nào, bạn sẽ kết thúc việc điền vào thư mục tests hoặc thư mục con mới được tạo với các tệp tương tự như những gì trong thư mục native trong thay đổi mẫu gerrit. Các phần bên dưới sẽ giải thích chi tiết hơn về từng tệp.

Mã nguồn

Tham khảo Hello World GTest để làm ví dụ.

Mã nguồn cho ví dụ đó được chú thích ở đây:

#include <gtest/gtest.h>

Tệp tiêu đề bao gồm cho GTest. Sự phụ thuộc của tệp bao gồm được giải quyết tự động bằng cách sử dụng BUILD_NATIVE_TEST trong tệp tạo.

#include <stdio.h>

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

GTests được viết bằng macro TEST : tham số đầu tiên là tên trường hợp thử nghiệm và tham số thứ hai là tên thử nghiệm. Cùng với tên nhị phân thử nghiệm, chúng tạo thành hệ thống phân cấp sau trong bảng điều khiển kết quả:

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

Để biết thêm thông tin về bài kiểm tra viết với GTest, hãy tham khảo tài liệu GTest

Tệp cấu hình đơn giản

Mỗi mô-đun thử nghiệm mới phải có một tệp cấu hình để chỉ đạo hệ thống xây dựng với siêu dữ liệu mô-đun, phụ thuộc thời gian biên dịch và hướng dẫn đóng gói. Trong hầu hết các trường hợp, tùy chọn tệp Blueprint dựa trên Soong là đủ. Xem Cấu hình kiểm tra đơn giản để biết chi tiết.

Tệp cấu hình phức tạp

Để sử dụng Trade Federation thay thế, hãy viết một tệp cấu hình thử nghiệm cho bộ khai thác thử nghiệm của Android, Trade Federation .

Cấu hình thử nghiệm có thể chỉ định các tùy chọn thiết lập thiết bị đặc biệt và các đối số mặc định để cung cấp cho lớp thử nghiệm.

Xây dựng và thử nghiệm cục bộ

Đối với các trường hợp sử dụng phổ biến nhất, hãy sử dụng Atest .

Đối với các trường hợp phức tạp hơn cần tùy chỉnh nặng hơn, hãy làm theo hướng dẫn của thiết bị .