Skip to content

Commit 7f2fcfa

Browse files
committed
fixed stats computation, for case when the entire unittest passes
1 parent 617ae4b commit 7f2fcfa

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

scripts/process_unittests.py

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ def __init__(self):
6060
self.num_fails = -1
6161
self.num_skipped = -1
6262

63+
def all_ok(self):
64+
self.num_errors = 0
65+
self.num_fails = 0
66+
self.num_skipped = 0
67+
6368
@property
6469
def num_passes(self):
6570
if self.num_tests > 0:
@@ -83,8 +88,7 @@ def num_passes(self):
8388

8489
# stats
8590
if line.strip() == 'OK':
86-
stats[unittests[-1]].num_fails = 0
87-
stats[unittests[-1]].num_errors = 0
91+
stats[unittests[-1]].all_ok()
8892
continue
8993

9094
match = re.match(PTRN_NUM_TESTS, line)
@@ -117,6 +121,7 @@ def num_passes(self):
117121
'num_passes': 0,
118122
}
119123
total_not_run_at_all = 0
124+
total_pass_all = 0
120125

121126
for unittest in unittests:
122127
unittest_stats = stats[unittest]
@@ -138,12 +143,15 @@ def num_passes(self):
138143
totals['num_errors'] += unittest_stats.num_errors
139144
totals['num_skipped'] += unittest_stats.num_skipped
140145
totals['num_passes'] += unittest_stats.num_passes
146+
if unittest_stats.num_tests == unittest_stats.num_passes:
147+
total_pass_all += 1
141148
else:
142149
total_not_run_at_all += 1
143150

144151
_all_runs = len(unittests)-total_not_run_at_all
145152
_all_total = len(unittests)
146153
_percent_all_runs = float(_all_runs) / float(_all_total) * 100.0
154+
_percent_all_full_passes = float(total_pass_all) / float(_all_total) * 100.0
147155

148156
_test_runs = totals['num_passes']
149157
_test_total = totals['num_tests']
@@ -156,8 +164,8 @@ def num_passes(self):
156164
'num_errors': totals['num_errors'],
157165
'num_skipped': totals['num_skipped'],
158166
'num_passes': totals['num_passes'],
159-
'python_errors': 'Could run {}/{} unittests ({}%). Of the ones which ran, could run: {}/{} tests ({}%)'.format(
160-
_all_runs, _all_total, _percent_all_runs,
167+
'python_errors': 'Could run {0}/{1} unittests ({2:.2f}%). Unittests which pass completely: {3:.2f}%. Of the ones which ran, could run: {4}/{5} tests ({6:.2f}%)'.format(
168+
_all_runs, _all_total, _percent_all_runs, _percent_all_full_passes,
161169
_test_runs, _test_total, _percent_test_runs)
162170
})
163171

0 commit comments

Comments
 (0)