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.

Xử lý quyền chọn trong Tradefed

Xử lý quyền chọn nằm ở trung tâm của phương pháp tiếp cận mô-đun của Trade Federation. Cụ thể, các tùy chọn là cơ chế mà Nhà phát triển, Người tích hợp và Người chạy thử có thể làm việc cùng nhau mà không cần phải sao chép công việc của nhau. Nói một cách đơn giản, việc triển khai xử lý tùy chọn của chúng tôi cho phép Nhà phát triển đánh dấu một thành viên lớp Java là có thể định cấu hình, tại thời điểm đó, giá trị của thành viên đó có thể được Người tích hợp tăng thêm hoặc ghi đè và sau đó có thể được Người chạy thử nghiệm tăng cường hoặc ghi đè. Cơ chế này hoạt động đối với tất cả các kiểu nội tại của Java, cũng như đối với bất kỳ Map hoặc Collection nào thuộc các kiểu nội tại.

Lưu ý: Cơ chế xử lý tùy chọn chỉ hoạt động đối với các lớp triển khai một trong các giao diện có trong Vòng đời kiểm tra và chỉ khi lớp đó được khởi tạo bởi máy móc vòng đời.

Nhà phát triển

Để bắt đầu, nhà phát triển đánh dấu một thành viên bằng chú thích @Option . Chúng chỉ định (tối thiểu) giá trị namedescription , chỉ định tên đối số được liên kết với Tùy chọn đó và mô tả sẽ được hiển thị trên bảng điều khiển TF khi lệnh được chạy với --help hoặc --help-all .

Ví dụ: giả sử chúng tôi muốn xây dựng một thử nghiệm điện thoại chức năng sẽ quay nhiều số điện thoại khác nhau và sẽ nhận được một chuỗi âm DTMF từ mỗi số sau khi nó kết nối.

public class PhoneCallFuncTest extends IRemoteTest {
    @Option(name = "timeout", description = "How long to wait for connection, in millis")
    private long mWaitTime = 30 * 1000;  // 30 seconds

    @Option(name = "call", description = "Key: Phone number to attempt.  " +
            "Value: DTMF to expect.  May be repeated.")
    private Map<String, String> mCalls = new HashMap<String, String>;

    public PhoneCallFuncTest() {
        mCalls.add("123-456-7890", "01134");  // default
    }

Đó là tất cả những gì cần thiết để Nhà phát triển thiết lập hai điểm cấu hình cho bài kiểm tra đó. Sau đó, họ có thể sử dụng mWaitTimemCalls như bình thường mà không cần quan tâm nhiều đến thực tế là chúng có thể định cấu hình. Bởi vì các trường @Option được đặt sau khi lớp được khởi tạo, nhưng trước khi phương thức run được gọi, điều này cung cấp một cách dễ dàng cho người triển khai để thiết lập các giá trị mặc định cho hoặc thực hiện một số loại lọc trên các trường MapCollection , các trường này được thêm vào- chỉ có.

Tích hợp

Tích hợp hoạt động trong thế giới Cấu hình, được viết bằng XML. Định dạng cấu hình cho phép Trình tích hợp đặt (hoặc thêm) một giá trị cho bất kỳ trường @Option nào. Ví dụ: giả sử Trình tích hợp muốn xác định kiểm tra độ trễ thấp hơn gọi số mặc định, cũng như kiểm tra dài hạn gọi nhiều số khác nhau. Họ có thể tạo một cặp cấu hình có thể giống như sau:

<?xml version="1.0" encoding="utf-8"?>
<configuration description="low-latency default test; low-latency.xml">
    <test class="com.example.PhoneCallFuncTest">
        <option name="timeout" value="5000" />
    </test>
</configuration>
<?xml version="1.0" encoding="utf-8"?>
<configuration description="call a bunch of numbers; many-numbers.xml">
    <test class="com.example.PhoneCallFuncTest">
        <option name="call" key="111-111-1111" value="#*#*TEST1*#*#" />
        <option name="call" key="222-222-2222" value="#*#*TEST2*#*#" />
        <!-- ... -->
    </test>
</configuration>

Người chạy thử nghiệm

Người chạy thử nghiệm cũng có quyền truy cập vào các điểm cấu hình này thông qua bảng điều khiển Liên đoàn Thương mại. Đầu tiên và quan trọng nhất, họ sẽ chạy một Lệnh (nghĩa là một cấu hình và tất cả các đối số của nó) với run command <name> chỉ dẫn (hay viết tắt run <name> ). Ngoài ra, họ có thể chỉ định bất kỳ danh sách đối số nào là một phần của lệnh, có thể thay thế hoặc nối thêm vào các trường được chỉ định bởi Đối tượng Vòng đời trong mỗi cấu hình.

Để chạy thử nghiệm độ trễ thấp với các many-numbers điện thoại nhiều số, Trình chạy thử nghiệm có thể thực thi:

tf> run low-latency.xml --call 111-111-1111 #*#*TEST1*#*# --call 222-222-2222 #*#*TEST2*#*#

Hoặc, để có được hiệu ứng tương tự từ hướng ngược lại, Người chạy thử có thể giảm thời gian chờ cho thử nghiệm many-numbers :

tf> run many-numbers.xml --timeout 5000

Đặt hàng tùy chọn

Bạn có thể nhận thấy rằng việc triển khai bên dưới tùy chọn call là một Map , do đó, khi lặp lại --call trên dòng lệnh, tất cả chúng sẽ được lưu trữ.

Thời timeout tùy chọn, có triển khai cơ bản là long , chỉ có thể lưu trữ một giá trị. Vì vậy, chỉ giá trị cuối cùng được chỉ định sẽ được lưu trữ. --timeout 5 --timeout 10 sẽ dẫn đến timeout chứa 10.

Trong trường hợp một List hoặc Collection là triển khai cơ bản, tất cả các giá trị sẽ được lưu trữ, theo thứ tự được chỉ định trên dòng lệnh.

Tùy chọn Boolean

Các tùy chọn của kiểu cơ bản boolean có thể được đặt thành true bằng cách chuyển trực tiếp tên tùy chọn, ví dụ, --[option-name] và có thể được đặt thành false bằng cú pháp --no-[option-name] .

Xem thêm

Chuyển các tùy chọn cho bộ và mô-đun