Display python unittest results in nice, tabular form

后端 未结 3 1555
心在旅途
心在旅途 2020-12-07 22:46

I am writing a Pythonic tool which validates the correctness of a certain system. Each validation is written as a Python unittest, and the report looks like:



        
相关标签:
3条回答
  • 2020-12-07 23:31

    Take a look at Twisted's Trial.

    By default, it uses the TreeReporter test runner, which looks like:

    Trial's reporting

    It has the following:

    • It's a command line report, just run:

      trial test_name.py

    • Colored output: red for failure, green for success

    • The report uses a tree like structure. It displays the tests under the TestCases they belong, allowing you to quickly traverse the results to find a specific test. (Although it provides a couple of more reports).

    • It also includes a test library, derived from Python's unittest.TestCase. You can use this library by subclassing twisted.trial.unittest.TestCase. This provides a few more assertion methods.

    • It includes the option to generate statement coverage for your tests.

    0 讨论(0)
  • 2020-12-07 23:33

    I would like to add my information as a comment into alecxe's answer, but I do not have enough reputation for that.

    In case of someone still looking for an answer, I forked HTMLTestRunner into a simple TestRunner, which has a tabular, colored, terminal-friendly output. This is a sample of its output:

    The source code is at https://gist.github.com/viniciusd/73e6eccd39dea5e714b1464e3c47e067

    I shall rewrite it from scratch soon but keeping the output format.

    0 讨论(0)
  • 2020-12-07 23:38

    This is not exactly what you are asking, but there are several options for having a readable test output there:

    • HTMLTestRunner generates easy to use HTML test reports in a tabular form. Here's a sample report.
    • nose-html-output plugin for nose test runner
    • unittest-xml-reporting - PyUnit-based test runner with JUnit like XML reporting
    • nose with --with-xunit option will produce junit xml style reports that are easy to read and convert

    Also see:

    • How to produce html unit test output in Python?
    • Python Unittest Reporting in HTML
    • unittest colored output (coloring the output can make results readable too)

    If you want to see test results in a tabular form in the console anyway, I think that a good idea would be to write your own nose plugin or test runner based on unittest.TestProgram as it was done in HTMLTestRunner.

    Hope that helps.

    0 讨论(0)
提交回复
热议问题