Phần này giải thích cách chạy và đóng góp cho các kiểm thử của Trade Federation sau khi thực hiện thay đổi đối với dự án. Trong đó có:
- Vị trí 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
- Vị trí thêm 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 trên máy
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
LƯU Ý QUAN TRỌNG: Việc thêm các lớp kiểm thử đơn vị mới vào các vị trí này sẽ khiến các lớp này tự động chạy ở chế độ 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 của 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 kiểm thử đơn vị độc lập, nhưng phải thực thi kiểm thử chức năng bằng cách sử dụng chính Liên minh thương mại; các kiểm thử này yêu cầu thiết bị Android. Tất cả các chương trình kiểm thử chức năng 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 thi 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. Phương thức này sẽ in kết quả 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 liệu có lỗi xảy ra 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 bài kiểm thử đều được duy trì để đạt được kết quả, vì vậy, nếu có bất kỳ lỗi nào xảy ra với thay đổi cục bộ của bạn, vui lòng đảm bảo các bài kiểm thử đã được khắc phục.
Thêm 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 trongcom.android.tradefed.DeviceFuncTests
. Nếu không, định nghĩa về bộ ứng dụng sẽ nằm trongcom.android.tradefed.FuncTests
.Nếu phương thức kiểm thử của bạn phù hợp để đưa vào một trong các lớp con hiện có của bộ kiểm thử, hãy thêm phương thức đó vào đó. Nếu không, hãy thêm một lớp mới vào bộ ứng dụng hiện có.
Trong cả hai trường hợp, bằng cách thêm hàm này 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 kiểm thử chức năng từ Eclipse:
- Đảm bảo thiết bị được kết nối với máy chủ lưu trữ và
adb
và nếu cần thìfastboot
phải nằm trong PATH của Eclipse. Cách dễ nhất để làm việc này là chạy Eclipse từ một chế độ thiết lập shell có PATH thích hợp. - Tạo ứng dụng Java. Chạy cấu hình thông qua Run > Run configurations (Chạy > Chạy cấu hình).
- Đặt dự án thành
tradefed-tests
và lớp chính thànhcom.android.tradefed.command.CommandRunner
. - Chạy
m tradefed-all
. - 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>
- Nhấp vào Run (Chạy).
Để chạy kiểm thử chức năng bên ngoài Eclipse.
- Xây dựng Liên minh thương mại.
- Kết nối thiết bị Android với máy chủ.
- Chạy
tools/tradefederation/core/javatests/run_tradefed_func_tests.sh
- 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 kết quả củaadb devices
.
Chạy các 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 trước khi gửi, hãy sử dụng cách sau:
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 TF là tập hợp con của các kiểm thử đơn vị ở trên, nhưng sẽ chậm hơn khi chạy các kiểm thử này. Vì vậy, bạn nên chạy 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 lần gửi trước khi tải CL lên.