2012-01-30 19 views
5

Tôi cam kết mỗi khi tôi thực hiện một số thay đổi mà tôi nghĩ rằng có thể hoạt động: Tôi không thực hiện thử nghiệm rộng rãi trước khi cam kết. Ngoài ra, các cam kết của tôi sẽ sớm được tự động pushed to a remote repository. (Tôi là nhà phát triển duy nhất và tôi phải thêm các tính năng hoặc viết lại các phần của mã nhiều lần trong ngày.)mercurial: chạy thử nghiệm hồi quy từ xa tự động trên mọi cam kết

Tôi muốn thiết lập máy tính từ xa để chạy kiểm tra hồi quy tự động bất cứ khi nào tôi cam kết bất kỳ điều gì; và sau đó gửi lại cho tôi email báo cáo sự khác biệt.

Cách dễ nhất để thiết lập điều này là gì?

Tất cả mã của tôi là bằng Python 3. Hệ thống của riêng tôi là Windows 7, ActiveState Python, TortoiseHG và Wing IDE. Tôi có thể thiết lập máy tính từ xa như Linux hoặc Windows. Ứng dụng này là tất cả các dòng lệnh, với đầu vào và đầu ra văn bản.

Trả lời

6

Sử dụng máy chủ tích hợp liên tục như Buildbot hoặc Jenkins và định cấu hình để theo dõi kho lưu trữ. Sau đó chạy các bài kiểm tra bằng cách sử dụng đó. Buildbot được viết bằng Python, do đó bạn sẽ cảm thấy như đang ở nhà với nó.

Nếu bạn cảm thấy lãng phí khi Buildbot hoặc Jenkins thăm dò kho lưu trữ (mặc dù hg pull sử dụng rất ít tài nguyên khi không có thay đổi mới), thì bạn có thể cấu hình móc changegroup trong kho để kích hoạt bản dựng trong CI máy chủ.

+1

Chúng tôi chạy TeamCity, một máy chủ tích hợp liên tục tuyệt vời khác. – StrangeWill

+1

@StrangeWill: Tôi đã nghe những điều tốt đẹp về TeamCity, ví dụ như nó có thể lên kế hoạch xây dựng trên tác nhân đã có bản sao giống như bản sao ngược dòng, để 'hg pull' là nhanh cho khách hàng. Tôi chỉ tập trung vào các công cụ nguồn mở trong câu trả lời của mình vì đó là những gì tôi có nhiều kinh nghiệm nhất với bản thân mình. –

2

Tôi khuyên bạn nên thiết lập Buildbot. Bạn có thể có nó xem một kho lưu trữ từ xa (Mercurial được hỗ trợ) và tự động khởi động một build khi kho lưu trữ thay đổi. Trong trường hợp của bạn, một bản xây dựng sẽ chỉ chạy bộ thử nghiệm của bạn.

Màn hình thác nước của nó cho phép bạn xem những bản dựng nào bị lỗi và khi nào, liên quan đến cam kết từ kho lưu trữ. Nó thậm chí có thể thông báo cho bạn, với các cam kết vi phạm, khi một cái gì đó phá vỡ.

Jenkins là một tùy chọn khác, hỗ trợ hầu hết các tính năng tương tự. Thậm chí còn có các tùy chọn lưu trữ đám mây, như ShiningPanda có thể lưu trữ nó cho bạn và chúng cung cấp cấp phép miễn phí cho các dự án nguồn mở.

Các vấn đề liên quan