2010-10-15 23 views
8

Tôi có một bộ kiểm tra mà kết quả đầu ra kết quả kiểm tra theo định dạng Python Unit Test: http://docs.python.org/library/unittest.htmlBuildbot phân tích thử nghiệm Python Unit quả

Có một hiện mô-đun Buildbot/plugin có thể phân tích hình thức này?

Ví dụ:

DigitalReadWrite_02           ... ok 
DigitalReadWrite_03           ... ok 
DigitalReadWrite_04           ... ok 
PWMoutput_02 (PWM=128 50% LOW 49% HIGH)     ... ok 
PWMoutput_03 (PWM=128 50% LOW 49% HIGH)     ... ok 
PWMoutput_04 (PWM=128 50% LOW 49% HIGH)     ... ok 
-------------------------- 
Ran 6 tests in 1.652s 

OK 

Tôi đã viết một phân tích cú pháp tùy chỉnh, nhưng nó chỉ có các trường hợp cơ bản. Có đáng để nỗ lực làm cho nó toàn diện cho tất cả các hương vị của định dạng thử nghiệm Đơn vị Python.

+1

Có giá trị là –

+0

Đây là công việc cho thử nghiệm * runner * như 'mũi' hoặc' py.test' để cung cấp đầu ra có thể phân tích cú pháp như định dạng XUnit XML. – jfs

Trả lời

3

Không, không có ý nghĩa gì khi phát triển trình phân tích cú pháp. Bạn có thể lấy thông tin tương đương từ các lớp học trong mô-đun runner.py.

xem xét mở rộng cả hai lớp TextTestRunnerTextTestResult với logic tùy chỉnh của bạn (python 2.7). Kết quả bạn đã liệt kê được tạo bởi TextTestResult.

Hoặc bạn có thể mở rộng chỉ TextTestResult và thay đổi thuộc tính lớp TextTestRunner.resultclass đặt nó vào tên lớp tiện ích mới.

Dữ liệu bạn có thể trích xuất từ ​​TextTestResult và đưa vào một số danh sách từ điển lớn hơn hoặc tương đương với dữ liệu mà trình phân tích cú pháp của bạn có thể trích xuất.

Khuôn khổ unittest cho phép các thủ thuật như vậy do thiết kế linh hoạt của nó. Hy vọng điều này hữu ích.

[EDIT]

tôi sẽ tìm thấy công bố kết quả của bạn cho đến nay (ví dụ như một mã nguồn mở trên github) có tiềm năng rất hữu ích cho những người tìm thấy câu hỏi của bạn!

Có nói rằng tôi nghi ngờ sẽ dễ dàng cải thiện trình phân tích cú pháp thực tế ngoài phân tích cú pháp regexp cơ bản.

Nếu bạn vẫn muốn theo đuổi phương pháp phân tích cú pháp văn bản - bạn có thể cần liệt kê và mô tả "tất cả các hương vị của định dạng thử nghiệm Đơn vị Python" mà bạn muốn bao gồm/hỗ trợ. Nếu bạn may mắn để đưa một mô tả như vậy dưới hình thức ngữ pháp không có ngữ cảnh, thì có thể bạn sẽ có thể phát triển một trình phân tích cú pháp cho nó, mà sẽ bao gồm các trường hợp "đó" như một dạng của một ngôn ngữ. Hãy chú ý cẩn thận: nếu phân tích cú pháp văn bản không được bao hàm bởi việc lập lại đơn giản và có khả năng bạn đang phân tích một số ngôn ngữ không theo ngữ cảnh (rất nhạy cảm) - rất có thể bạn sẽ thấy nó vô cùng khó khăn để thực hiện.

+0

Sẽ vẫn tuyệt vời khi biết những người không có quyền truy cập vào nhân vật – trinth

+0

Bất kỳ sự lựa chọn nào giữa regexps và lập trình hướng đối tượng chỉ là vấn đề thuận tiện. BTW nếu bạn nói rằng bạn không có quyền truy cập hoặc kiểm soát lớp Runner, tức là tổ chức quá trình kiểm tra môi trường của bạn, sau đó phân tích cú pháp văn bản có thể tốt cho các báo cáo văn bản. Nhưng tôi sẽ được cảnh báo rất nhiều nếu điều này thực sự là như vậy .. nếu bạn không có quyền kiểm soát thích hợp về công việc thử nghiệm của bạn == nó có thể không mang lại cho bạn nhiều anyway. –

+0

Tôi đồng ý với bạn thực tế nói. Nhưng trong trường hợp ai đó quan tâm đến việc này như là một bài tập hoặc cho vui, họ có thể muốn trả lời cho câu hỏi ban đầu. – trinth

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