Bao gồm kiểm thử đơn vị và kiểm thử chức năng

Phần này giải thích cách chạy và đóng góp cho các kiểm thử Liên đoàn thương mại sau khi thực hiện thay đổi đối với dự án. Trong đó có:

  • Nơi thêm các lớp kiểm thử đơn vị mới
  • Chạy kiểm thử đơn vị trong Eclipse và bên ngoài IDE Eclipse
  • Nơi thêm các kiểm thử chức năng
  • Chạy kiểm thử chức năng
  • Chạy một số quy trình xác thực trước khi gửi của TF cục bộ

Thêm kiểm thử đơn vị

Trong Dự án nguồn mở Android (AOSP), hãy thêm lớp kiểm thử đơn vị vào: tools/tradefederation/core/tests/src/com/android/tradefed/UnitTests.java

QUAN TRỌNG: Việc thêm các lớp kiểm thử đơn vị mới vào những vị trí này sẽ khiến các lớp đó tự động chạy trong giai đoạn trước khi gửi mà không cần thiết lập thêm.

Chạy kiểm thử đơn vị

Tất cả các bài kiểm thử đơn vị và kiểm thử chức năng AOSP cho Trade Federation đều nằm trong dự án tools/tradefederation/core/tests.

Trong Eclipse, để chạy một kiểm thử đơn vị riêng lẻ, bạn chỉ cần nhấp chuột phải vào kiểm thử đó rồi chọn Run As > JUnit (Chạy dưới dạng > JUnit). Để chạy tất cả các bài kiểm thử đơn vị, hãy chạy bộ com.android.tradefed.UnitTests.

Bạn cũng có thể bắt đầu kiểm thử đơn vị từ dòng lệnh trong cây nguồn Tradefed sau khi tạo, như sau: tools/tradefederation/core/javatests/run_tradefed_tests.sh

Bạn có thể thực thi các bài kiểm thử đơn vị một cách độc lập, nhưng bạn nên thực thi các bài kiểm thử chức năng bằng chính Trade Federation; các bài kiểm thử này yêu cầu một thiết bị Android. Tất cả các kiểm thử chức năng đều phải tuân theo quy ước đặt tên *FuncTest.

Kiểm tra kết quả kiểm thử đơn vị

Khi chạy run_tradefed_tests.sh, các bài kiểm thử đơn vị sẽ thực hiện tất cả các phần của bộ kiểm thử, bao gồm cả một số điều kiện lỗi. Thao tác này sẽ in đầu ra chi tiết vào bảng điều khiển, bao gồm cả dấu vết ngăn xếp.

Bản tóm tắt cuối cùng của kết quả sẽ cho biết có xảy ra lỗi hay không.

Ví dụ về bản tóm tắt cuối cùng trong bảng điều khiển:

12:55:02 ========== Result Summary ==========
Results summary for test-tag 'TFUnitTests': 3355 Tests [3355 Passed]

Tất cả các kiểm thử đều được duy trì để vượt qua, vì vậy, nếu có bất kỳ lỗi nào xảy ra đối với thay đổi cục bộ của bạn, vui lòng đảm bảo các kiểm thử đã được khắc phục.

Thêm các kiểm thử chức năng

  • Nếu kiểm thử chức năng của bạn liên quan đến một thiết bị (sử dụng bất kỳ API ITestDevice nào), thì định nghĩa bộ kiểm thử sẽ nằm trong com.android.tradefed.DeviceFuncTests. Nếu không, định nghĩa về bộ kiểm thử sẽ nằm trong com.android.tradefed.FuncTests.

  • Nếu các phương thức kiểm thử của bạn có ý nghĩa khi đặt trong một trong các lớp con của bộ kiểm thử hiện có, thì bạn nên thêm phương thức đó vào đó. Nếu không, bạn có thể thêm một lớp mới vào bộ kiểm thử phù hợp.

  • Trong cả hai trường hợp, bằng cách thêm kiểm thử vào bộ kiểm thử, kiểm thử của bạn sẽ tự động chạy trong quy trình CI cùng với các kiểm thử chức năng khác.

Chạy kiểm thử chức năng

Cách chạy một kiểm thử chức năng từ Eclipse:

  1. Đảm bảo rằng một thiết bị đã kết nối với máy chủ lưu trữ và adb cũng như fastboot (nếu cần) nằm trong PATH của Eclipse. Cách dễ nhất để thực hiện việc này là khởi chạy Eclipse từ một thiết lập shell có PATH phù hợp.
  2. Tạo một ứng dụng Java. Cấu hình chạy thông qua Run > Run configurations (Chạy > Cấu hình chạy).
  3. Đặt dự án thành tradefed-tests và lớp chính thành com.android.tradefed.command.CommandRunner.
  4. Chạy m tradefed-all.
  5. Cung cấp các đối số dòng lệnh sau trong thẻ Arguments (Đối số): host --class <full path of test class to run>
  6. Nhấp vào Run (Chạy).

Để chạy kiểm thử chức năng bên ngoài Eclipse.

  1. Xây dựng Liên minh Thương mại.
  2. Kết nối thiết bị Android với máy chủ.
  3. Chạy tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
  4. Nếu muốn, hãy chọn thiết bị bằng cách thêm --serial <serial no> khi thiết bị đó xuất hiện trong đầu ra của adb devices.

Chạy các quy trình kiểm thử trước khi gửi TF đối với các thay đổi cục bộ

Nếu bạn muốn chạy theo cách tương tự như TF presubmit, hãy sử dụng:

tools/tradefederation/core/javatests/run_tradefed_aosp_presubmit.sh

Thao tác này sẽ kích hoạt tất cả các kiểm thử trước khi gửi TF đối với TF được tạo cục bộ để giúp bạn xác thực rằng thay đổi của bạn không làm hỏng bất kỳ kiểm thử nào.

Các kiểm thử trước khi gửi của TF là một siêu tập hợp của các kiểm thử đơn vị ở trên, nhưng việc chạy các kiểm thử này sẽ chậm hơn. Vì vậy, bạn nên chạy các kiểm thử đơn vị trong quá trình phát triển để xác thực nhanh hơn và chạy các kiểm thử trước khi tải CL lên.