2011-07-10 15 views
11

Có bất kỳ tiện ích mở rộng nào cho HUnit hoặc QuickCheck cho phép hệ thống tích hợp liên tục như Bamboo để báo cáo chi tiết kết quả kiểm tra không?HUnit/QuickCheck với tích hợp liên tục

Cho đến nay, ý tưởng tốt nhất của tôi là chỉ cần kích hoạt các thử nghiệm như một phần của tập lệnh xây dựng và dựa vào các thử nghiệm để không thành công với mã thoát khác 0. Điều này có hiệu quả để nhận được sự chú ý khi thử nghiệm không thành công, nhưng gây nhầm lẫn khi xây dựng các lỗi thất bại với kiểm tra và yêu cầu lội qua đầu ra của bàn điều khiển để xác định nguồn của vấn đề. Nếu đây là tùy chọn tốt nhất với các công cụ hiện tại, ý tưởng của tôi là viết một mô-đun báo cáo cho HUnit để tạo ra đầu ra trong JUnit XML format, sau đó trỏ công cụ CI vào nó như thể nó đang báo cáo về một dự án Java. Điều này có vẻ hơi hackish, mặc dù, vì vậy tôi sẽ đánh giá cao suy nghĩ của bạn cả về các tùy chọn hiện có và hướng dẫn cho sự phát triển mới.

+1

Bắt chước định dạng JUnit XML có vẻ như là một cách khá tốt để có được số tiền cao nhất cho khóa mã hóa của bạn. Xem liệu HUnit đã có hỗ trợ cho nó mặc dù. QuickCheck là một chút phức tạp hơn, bởi vì nó không thực sự phong cách XUnit truyền thống, mặc dù bạn có thể có thể shoehorn nó là tốt. –

+0

có thể hơi liên quan: http://stackoverflow.com/questions/4687387/organizing-haskell-tests – hvr

Trả lời

11

The test-framework package cung cấp các công cụ để tích hợp các thử nghiệm bằng cách sử dụng các mẫu thử khác nhau, bao gồm HUnit và QuickCheck, và nhân viên kiểm tra bảng điều khiển của nó có thể được thông qua một lá cờ làm cho nó tạo ra XML tương thích JUnit. Chúng tôi sử dụng nó với Jenkins để tích hợp liên tục.

Invocation dụ:

$ ./test --jxml=test-results.xml 
+0

Btw, bạn có quản lý tích hợp đồ thị phủ sóng mã cũng như trong Jenkins không? – hvr

+0

Cảm ơn vì điều này! Tôi đồng ý với @hvr rằng nó sẽ rất mát mẻ để tích hợp các báo cáo hpc là tốt. Nó không quá khó với 'hpc markup' ... – acfoltzer

+0

Làm thế nào để tôi nhận được' --jxml' vào một 'cabal install --enable-tests'-invocation? – ShiDoiSi

2

Tôi vừa mới phát hành một gói mà tạo ra thử dãy phòng dựa trên module chứa các thuộc tính QuickCheck: http://hackage.haskell.org/package/tasty-integrate

Đây là một bước trên thử nghiệm khuôn khổ/ngon tại thời điểm, vì nó kéo mạnh/tổng hợp chúng ra khỏi hệ thống tập tin, thay vì dựa vào lưu giữ hồ sơ cho mỗi tập tin. Tôi hy vọng điều này sẽ giúp quá trình CI của bạn.