Skip to content

Commit 396c38d

Browse files
committed
Add new sub-section to the Test Summary called Test Overview
The new Test Overview sub-section shows the number of tests to have passed, failed, and have been skipped, along with the full details from write_report_result_tree(). Signed-off-by: Joachim Wiberg <[email protected]>
1 parent bc90629 commit 396c38d

File tree

1 file changed

+46
-1
lines changed

1 file changed

+46
-1
lines changed

9pm.py

Lines changed: 46 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,13 +387,57 @@ def write_report_project_info(file, config):
387387

388388
file.write(f"\n=== {name} Info\n\n")
389389

390-
file.write('[cols="1h,2"]\n')
390+
file.write('[cols="1h,2", width=30%]\n')
391391
file.write("|===\n")
392392
file.write(f"| Version | {version}\n")
393393
file.write(f"| SHA | {sha}\n")
394394

395395
file.write("|===\n")
396396

397+
def write_report_test_info(file, data):
398+
pass_count = 0
399+
fail_count = 0
400+
skip_count = 0
401+
masked_fail_count = 0
402+
masked_skip_count = 0
403+
404+
def count_tests(suite_data):
405+
nonlocal pass_count, fail_count, skip_count, masked_fail_count, masked_skip_count
406+
for test in suite_data['suite']:
407+
if 'suite' in test:
408+
# This is a sub-suite, recurse but don't count it
409+
count_tests(test)
410+
elif 'result' in test:
411+
# This is a leaf test case, count it
412+
if test['result'] == 'pass':
413+
pass_count += 1
414+
elif test['result'] == 'fail':
415+
fail_count += 1
416+
elif test['result'] == 'skip':
417+
skip_count += 1
418+
elif test['result'] == 'masked-fail':
419+
masked_fail_count += 1
420+
elif test['result'] == 'masked-skip':
421+
masked_skip_count += 1
422+
423+
count_tests(data)
424+
425+
file.write("\n=== Test Overview\n\n")
426+
file.write('[cols="1h,2", width=30%]\n')
427+
file.write("|===\n")
428+
file.write(f"| {resultfmt({'result': 'pass'})} | {pass_count}\n")
429+
file.write(f"| {resultfmt({'result': 'fail'})} | {fail_count}\n")
430+
file.write(f"| {resultfmt({'result': 'skip'})} | {skip_count}\n")
431+
file.write(f"| {resultfmt({'result': 'masked-fail'})} | {masked_fail_count}\n")
432+
file.write(f"| {resultfmt({'result': 'masked-skip'})} | {masked_skip_count}\n")
433+
434+
total_count = pass_count + fail_count + skip_count + masked_fail_count + masked_skip_count
435+
file.write(f"| *TOTAL* | *{total_count}*\n")
436+
file.write("|===\n")
437+
438+
includes = []
439+
write_report_result_tree(file, includes, data, 0)
440+
397441
def write_report(data, config):
398442
with open(os.path.join(LOGDIR, 'report.adoc'), 'a') as file:
399443
current_date = datetime.now().strftime("%Y-%m-%d")
@@ -412,6 +456,7 @@ def write_report(data, config):
412456
file.write("\n<<<\n")
413457
file.write("\n== Test Summary\n\n")
414458
write_report_project_info(file, config)
459+
write_report_test_info(file, data)
415460

416461
file.write("\n<<<\n")
417462
file.write("\n== Test Result\n\n")

0 commit comments

Comments
 (0)