2013-06-18 45 views
14

Tôi đang viết một công cụ Pythonic xác nhận tính chính xác của một hệ thống nhất định. Mỗi validation được viết như một Python unittest, và báo cáo trông giống như:Hiển thị các kết quả không rõ ràng của python ở dạng bảng, đẹp

test_exclude_list_not_empty (__main__.TestRepoLists) 
Assert the the exclude list is not empty ... ok 
test_include_list_not_empty (__main__.TestRepoLists) 
Assert the the include list is not empty ... ok 
test_repo_list_not_empty (__main__.TestRepoLists) 
Assert the the repo list is not empty ... ok 

Theo tôi, định dạng này là khó đọc, đặc biệt là cho người không Pythonists. Có máy phát điện báo cáo rằng có thể tạo ra một bản báo cáo trong một hình thức đẹp, bảng, ví dụ .:

+----------------------------------------------------------------+-----------+ 
| Test               | Status | 
+----------------------------------------------------------------+-----------+ 
| Assert the the exclude list is not empty      | OK  | 
| Assert the the include list is not empty      | OK  | 
| Assert the the repo list is not empty       | OK  | 
| All the items in the include list should be in the repo list | OK  | 
+----------------------------------------------------------------+-----------+ 

Làm rõ Các bộ kiểm tra chạy trên một thiết bị đầu cuối từ xa, vì vậy tôi thích công cụ lệnh báo cáo dòng.

Trả lời

22

Đây không phải là chính xác những gì bạn đang yêu cầu, nhưng có một số tùy chọn cho việc có một đầu ra thử nghiệm có thể đọc được ở đó:

  • HTMLTestRunner tạo dễ sử dụng báo cáo thử nghiệm HTML trong một dạng bảng. Here là báo cáo mẫu.
  • nose-html-output plugin cho nose kiểm tra Á hậu
  • unittest-xml-reporting - PyUnit-based Test Runner với JUnit như XML báo cáo
  • mũi với --with-xunit tùy chọn sẽ tạo ra các báo cáo theo phong cách junit xml mà dễ đọc và chuyển đổi

Xem thêm:

Nếu bạn muốn xem kết quả xét nghiệm trong một dạng bảng trong giao diện điều khiển dù sao, tôi nghĩ rằng một ý tưởng tốt sẽ được để viết own nose plugin của bạn hoặc thử nghiệm runner dựa trên unittest.TestProgram vì nó được thực hiện trong HTMLTestRunner.

Hy vọng điều đó sẽ hữu ích.

+0

+1 Cảm ơn. Có bất kỳ cái nào trong số này có liên quan đến một trình bao đầu cuối không? –

+1

Vâng, chắc chắn, bạn có thể cài đặt bất kỳ công cụ sản xuất xml/html nào ở phía máy chủ và sử dụng trên vỏ thiết bị đầu cuối từ xa. Tuy nhiên, trong trường hợp này, bạn cần phải tải xuống báo cáo trước để xem chúng trong trình duyệt, tất nhiên. Hoặc, cách khác, bạn có thể sử dụng trình duyệt web dựa trên văn bản như [lynx] ​​(http://lynx.browser.org/) để xem báo cáo ngay trong bảng điều khiển. – alecxe

+0

Điều đó sẽ vượt quá các vấn đề. Tôi nghĩ rằng một tabulation đơn giản trong shell sẽ làm. –

4

Hãy xem Twisted's Trial.

Theo mặc định, nó sử dụng các Á hậu TreeReporter kiểm tra, trông giống như:

Trial's reporting

Nó có những điều sau:

  • Đó là một báo cáo dòng lệnh, chỉ cần chạy:

    trial test_name.py

  • Sản lượng màu: đỏ cho lỗi, màu xanh lá cây để thành công

  • Báo cáo sử dụng cấu trúc giống cây. Nó hiển thị các bài kiểm tra theo TestCases chúng thuộc về, cho phép bạn nhanh chóng duyệt qua các kết quả để tìm một bài kiểm tra cụ thể.(Mặc dù nó cung cấp một vài chi tiết reports).

  • Nó cũng bao gồm thư viện thử nghiệm, bắt nguồn từ số unittest.TestCase của Python. Bạn có thể sử dụng thư viện này bằng cách phân lớp twisted.trial.unittest.TestCase. Điều này cung cấp thêm một số assertion methods.

  • Nó bao gồm tùy chọn tạo mức độ phù hợp cho các bài kiểm tra của bạn.

6

Tôi muốn thêm thông tin của mình làm nhận xét vào câu trả lời của alecxe, nhưng tôi không có đủ danh tiếng cho câu trả lời đó.

Trong trường hợp ai đó vẫn đang tìm kiếm câu trả lời, tôi đã chia nhỏ HTMLTestRunner thành một TestRunner đơn giản, có đầu ra dạng bảng, màu, đầu cuối thân thiện. Đây là một mẫu sản lượng của nó:

tôi không có đủ uy tín để đăng hình ảnh một trong hai, do đó, đây là một liên kết: http://i.stack.imgur.com/upSC0.png

Mã nguồn có tại https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067

tôi sẽ viết lại nó từ đầu sớm nhưng giữ định dạng đầu ra.

+0

Liên kết mã nguồn không còn hoạt động. Bạn có liên kết được cập nhật để chia sẻ không? – Deep

+0

Vui lòng cập nhật liên kết: ( –

+0

Ok, tôi lưu trữ nó trên Gist trong khi tôi không thiết lập một kho lưu trữ tốt đẹp trên Github –