Report¶
New in version 1.6.0.
Since version 1.6.0, lemoncheesecake provides an API to read the reports generated during test runs.
The entry-point of this API is the load_report() function which returns
a Report instance. From this object, every report details
(suites, tests, logs, etc…) is accessible.
The complete API reference is available here.
In this page, the API is demonstrated through two use cases.
Example 1: generating a CSV file from a report¶
This example script takes a report path (file or directory) as first argument and generate a CSV representation from this report:
#!/usr/bin/env python3
import sys
import csv
from lemoncheesecake.reporting import load_report
def test_to_dict(test):
return {
"test": test.path,
"description": test.description,
"status": test.status,
"tags": ",".join(test.tags)
}
report = load_report(sys.argv[1])
csv_writer = csv.DictWriter(sys.stdout, ("test", "description", "status", "tags"))
csv_writer.writeheader()
csv_writer.writerows(map(test_to_dict, report.all_tests()))
$ ./report-to-csv.py report/
test,description,status,tags
suite.test_1,My First Test,passed,some_tag
suite.test_2,My Second Test,failed,
Example 2: generating a summary of the report results¶
This example script takes a report path (file or directory) as first argument and generate a short summary from it:
#!/usr/bin/env python3
import sys
import csv
from lemoncheesecake.reporting import load_report
report = load_report(sys.argv[1])
print(report.build_message("Test results: {passed}/{enabled} passed ({passed_pct}) in {duration}"))
$ ./report-to-csv.py report/
Test results: 1/2 passed (50%) in 3s