2015-02-13 16 views
6

Có cách nào để tôi có thể dễ dàng chạy thử nghiệm Go nhiều lần, tạm dừng lần đầu tiên không thành công? Tôi có thể tất nhiên làm một cái gì đó như thế này:Golang: Làm thế nào để chạy "thử nghiệm" liên tục mà không cần biên dịch lại?

for i in {1..1000}; do go test ./mypkg && done 

nhưng điều đó gây ra một biên dịch lại mọi thời gian, mà là rất chậm so với thử nghiệm riêng của mình. Tôi tưởng tượng tôi có thể làm điều này với một số ứng dụng thông minh của cờ -execxargs, nhưng tôi không giỏi ở một lớp lót.

Điểm thưởng để chạy nó nhiều lần song song với một số kết quả đầu ra chi tiết sane nếu không vượt quá một hoặc hai nghìn lần.

Trả lời

5

Bạn có thể vượt qua -c cờ để go test sẽ, mỗi sự giúp đỡ:

Biên dịch nhị phân để kiểm tra pkg.test nhưng không chạy nó. (Trường hợp pkg là phần tử cuối cùng của đường dẫn nhập của gói.)

Vì vậy, ít nhất bạn có thể tránh biên dịch lại từng lần.

+0

Cảm ơn bạn! Tôi muốn có một công thức 'xargs' đóng hộp để chạy song song và nhận được kết quả thất bại tốt, nhưng điều này giúp tôi hầu hết cách đó. – jacobsa

5

Đây có lẽ là tính năng mới - nhưng bạn có thể sử dụng -count N để chỉ định số lần lặp lại mỗi bài kiểm tra. Có lẽ đáng nói đến nó sẽ chạy chúng với một biên dịch đơn.

Tôi phải cảm ơn Florin Pățan vì đã chú ý rằng trong một cuộc thảo luận Github mà chúng tôi vừa mới có.

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