Test Results Format Notes
This document has information about various test results formats, and their strengths and weaknesses.
The results format is the output from the test and creates is part of the interface between the test program and the test execution layer (or test harness).
The main thing that the format communicates is the list of testcases (or metrics, in the case of benchmarks) and the result of the testcase (pass, fail, etc.)
A good starting document that describes different test report formats is:
Existing output formats
Here are some of the existing formats that are used by various test programs and frameworks:
A test output format needs to communicate the following information:
- testcase identifiers (names or descriptions or ID numbers)
- result of the testcase (pass, fail, skip, error, xfail)
parser helper information
Some tests use simple line-based output. Here is an idea for how a program or log might provide information about it's output format, allowing the test framework to perform introspection on the logs.
Note that this is a fallback mechanism for when a test has already been written to with some ad-hoc consistency in its output. It is much preferred when writing new tests to use one of the existing test output formats.
- test log output format
- subtest results
One aspect of the result format is the result or status code for individual test cases or the test itself.
TAP version 14
The effort to create TAP version 14 has stalled.
Version 14 was intended to capture current practices that are already in use. The pull request for version 14, and resulting discussion is at:
You can see the full version 14 document in the submitter's repo:
$ git clone https://github.com/isaacs/testanything.github.io.git $ cd testanything.github.io $ git checkout tap14 $ ls tap-version-14-specification.md
For the Linux kernel selftests, the preferred output format is TAP (TestAnythingProtocol)