Skip to content
Snippets Groups Projects
Commit 6ad1f731 authored by Stéphane Diemer's avatar Stéphane Diemer
Browse files

Display tests duration (refs #20583).

parent a0c47c49
No related branches found
No related tags found
No related merge requests found
...@@ -165,6 +165,7 @@ class Tester(): ...@@ -165,6 +165,7 @@ class Tester():
results = list() results = list()
successes = 0 successes = 0
failures = 0 failures = 0
total_duration = None
for name, description, command in tests: for name, description, command in tests:
log('\033[1;95m-- Test "%s" --\033[0;0m' % name) log('\033[1;95m-- Test "%s" --\033[0;0m' % name)
start_date = datetime.datetime.utcnow() start_date = datetime.datetime.utcnow()
...@@ -186,14 +187,19 @@ class Tester(): ...@@ -186,14 +187,19 @@ class Tester():
failures += 1 failures += 1
log('Command exited with code %s.' % p.returncode) log('Command exited with code %s.' % p.returncode)
end_date = datetime.datetime.utcnow() end_date = datetime.datetime.utcnow()
log('Test end: %s UTC (duration: %s).' % (end_date.strftime('%Y-%m-%d %H:%M:%S'), end_date - start_date)) duration = end_date - start_date
results.append((name, description, command, success)) if total_duration:
total_duration += duration
else:
total_duration = duration
log('Test end: %s UTC (duration: %s).' % (end_date.strftime('%Y-%m-%d %H:%M:%S'), duration))
results.append((name, description, command, success, duration))
exit_code = 1 if failures > 0 else 0 exit_code = 1 if failures > 0 else 0
# Display results # Display results
log('\nTests results:') log('\nTests results:')
html_report = '<table border="1">' html_report = '<table border="1">'
html_report += '\n<tr><th>Test</th><th>Result</th><th>Description</th></tr>' html_report += '\n<tr><th>Test</th><th>Result</th><th>Duration</th><th>Description</th></tr>'
for name, description, command, success in results: for name, description, command, success, duration in results:
if success is None: if success is None:
html_result = '<span style="color: blue;">not testable</span>' html_result = '<span style="color: blue;">not testable</span>'
term_result = '\033[94mnot testable\033[0m' term_result = '\033[94mnot testable\033[0m'
...@@ -203,9 +209,9 @@ class Tester(): ...@@ -203,9 +209,9 @@ class Tester():
else: else:
html_result = '<span style="color: red;">failure</span>' html_result = '<span style="color: red;">failure</span>'
term_result = '\033[91mfailure\033[0m' term_result = '\033[91mfailure\033[0m'
log(' %s: %s' % (name, term_result)) log(' %s: %s (%s)' % (name, term_result, duration))
html_report += '\n<tr><td>%s</td><td>%s</td><td>%s</td></tr>' % (name, html_result, description.replace('\n', '<br/>\n')) html_report += '\n<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>' % (name, html_result, duration, description.replace('\n', '<br/>\n'))
log('') log('Total tests duration: %s.\n' % total_duration)
html_report += '\n</table>' html_report += '\n</table>'
# Store locally results # Store locally results
now = datetime.datetime.utcnow() now = datetime.datetime.utcnow()
...@@ -265,7 +271,6 @@ class Tester(): ...@@ -265,7 +271,6 @@ class Tester():
else: else:
log('Too many consecutive tester failures: %s, no email will be sent.' % consecutive_failures) log('Too many consecutive tester failures: %s, no email will be sent.' % consecutive_failures)
if send_email: if send_email:
log('')
recipients = utils.get_conf('EMAIL_ADMINS') recipients = utils.get_conf('EMAIL_ADMINS')
if not recipients: if not recipients:
log('No recipients defined for email sending. Set a value for EMAIL_ADMINS.') log('No recipients defined for email sending. Set a value for EMAIL_ADMINS.')
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment