Phần này giải thích cách chạy và đóng góp cho các bài 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 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 đó tự động chạy trong quá trình gửi trước 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 các bài kiểm thử đơn vị độc lập, nhưng các bài kiểm thử chức năng phải được thực thi bằng cách sử dụng chính Liên minh thương mại; các bài kiểm thử này yêu cầu một 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 hiện tất cả các phần của khai thác 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 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 bộ 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 qua 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 > Cấu hình chạy).
- Đặ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 các kiểm thử chức năng bên ngoài Eclipse.
- Thành lập Liên đoàn 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 thử nghiệm gửi trước 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ư khi gửi trước TF, hãy sử dụng đoạn mã 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.
Bài kiểm thử gửi trước TF là tập mẹ của các bài kiểm thử đơn vị ở trên, nhưng việc chạy các bài kiểm thử đó sẽ chậm hơn. 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.