2008-08-11 17 views
8

Tại nơi làm việc của tôi, chúng tôi đang chạy một nhóm các thử nghiệm bao gồm khoảng 3.000 trường hợp thử nghiệm riêng biệt. Trước đây, chúng tôi đã chạy toàn bộ bộ thử nghiệm này trên một máy, mất khoảng 24-72 giờ để hoàn thành toàn bộ quá trình chạy thử nghiệm. Bây giờ chúng ta đã tạo ra hệ thống riêng của chúng ta để phân nhóm và phân phối các thử nghiệm trong khoảng ba máy riêng biệt và các bài kiểm tra được ưu tiên để các bài kiểm tra lõi chạy trước để có kết quả tức thời hơn và các bài kiểm tra bổ sung chạy khi có một máy có sẵn.Kiểm tra Phân phối

Tôi rất tò mò nếu có ai tìm được cách tốt để phân phối các thử nghiệm của họ trong một số máy để giảm tổng thời gian chạy thử và sử dụng công cụ nào để đạt được điều đó. Tôi đã thực hiện một số nghiên cứu và có vẻ như TestNG là moving in this direction, nhưng có vẻ như nó vẫn còn dưới một chút phát triển.

Chúng tôi không có kế hoạch viết lại bất kỳ bài kiểm tra nào, nhưng khi chúng tôi thêm các bài kiểm tra mới và thử nghiệm các sản phẩm hoặc tiện ích mới, tôi muốn có khả năng xử lý thực tế là chúng tôi đang làm việc với số lượng rất lớn thử nghiệm. Mặt khác, nếu chúng ta có thể tìm thấy một công cụ có thể giúp phân phối các thử nghiệm Junit 3.x của chúng tôi ngay cả trong thời trang rất cơ bản, thì sẽ là hữu ích vì chúng tôi sẽ không phải duy trì công cụ của riêng mình để thực hiện điều đó.

Trả lời

2

Tôi đã xem một số người đang chơi với distributed JUnit. Tôi không thể đặc biệt xác minh nó hiệu quả như thế nào, nhưng các đội khác mà tôi đã thấy dường như nghĩ rằng nó đủ nhanh về phía trước. Hy vọng rằng sẽ giúp.

1

Những người xây dựng của chúng tôi sử dụng Mozilla Tinderbox. Nó dường như có một số móc cho thử nghiệm phân tán. Tôi xin lỗi không biết chi tiết nhưng tôi nghĩ ít nhất tôi cũng sẽ chuyển con trỏ cho bạn.

Đồng thời, bạn cũng có thể tìm thấy ngay lập tức khi xây dựng giải lao và kiểm tra nào có thể là thủ phạm.

http://www.mozilla.org/tinderbox.html

1

Ngoài ra còn có parallel-junit. Tùy thuộc vào cách bạn hiện đang thực hiện các thử nghiệm của bạn, sự tiện lợi của nó có thể thay đổi - ý tưởng chỉ là đa luồng trên một hệ thống có nhiều lõi. Tôi đã chơi với nó một thời gian ngắn, nhưng đó là một sự thay đổi từ cách chúng tôi hiện đang chạy thử nghiệm của chúng tôi.

Hudson, công cụ tích hợp liên tục mà tôi sử dụng, cũng có một số cách để phân phối chạy thử nghiệm (các công việc riêng biệt được tổng hợp kết quả trong một).