Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a7af7da

Browse files
committed
The default output reporter is now outputting the assert details when test is failing.
1 parent d82bb61 commit a7af7da

2 files changed

Lines changed: 24 additions & 13 deletions

File tree

source/types/ut_dbms_output_suite_reporter.tpb

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,34 @@ create or replace type body ut_dbms_output_suite_reporter is
2323
end;
2424

2525
overriding member procedure after_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object) as
26+
l_suite ut_test_object := treat(a_suite as ut_test_object);
27+
l_duration interval day(0) to second(6) := (l_suite.end_time - l_suite.start_time);
2628
begin
2729
--todo: report total suite result here with pretty message
2830
print(ut_dbms_output_suite_reporter.c_dashed_line);
29-
print('suite "' || a_suite.name || '" ended.');
31+
print('suite "' || l_suite.name || '" ended. Took: '||to_char(l_duration));
3032
print(ut_dbms_output_suite_reporter.c_dashed_line);
3133
end;
3234

35+
overriding member procedure before_asserts_process(self in out nocopy ut_dbms_output_suite_reporter, a_test in ut_object) as
36+
begin
37+
print('asserts');
38+
end;
39+
3340
overriding member procedure on_assert_process(self in out nocopy ut_dbms_output_suite_reporter, a_assert ut_object) as
41+
l_assert ut_assert_result := treat(a_assert as ut_assert_result);
3442
begin
35-
--todo: report total suite result here with pretty message
36-
null;
43+
if l_assert is not null then
44+
print(l_assert.result_to_char());
45+
if l_assert.message is not null then
46+
print('message: '||l_assert.message);
47+
end if;
48+
if l_assert.result != ut_utils.tr_success then
49+
print('expected: ' || l_assert.expected_value_string||'('||l_assert.expected_type||')');
50+
print(' got: ' || l_assert.actual_value_string||'('||l_assert.actual_type||')');
51+
print('using: '||l_assert.name);
52+
end if;
53+
end if;
3754
end;
3855

3956
overriding member procedure before_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
@@ -48,17 +65,10 @@ create or replace type body ut_dbms_output_suite_reporter is
4865
end;
4966

5067
overriding member procedure after_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object) as
51-
test ut_test := treat(a_test as ut_test);
52-
assert ut_assert_result;
68+
l_test ut_test_object := treat(a_test as ut_test);
69+
l_duration interval day(0) to second(6) := (l_test.end_time - l_test.start_time);
5370
begin
54-
print('result: ' || test.result_to_char);
55-
print('asserts');
56-
if test.items is not null and test.items.count >0 then
57-
for i in test.items.first .. test.items.last loop
58-
assert := treat(test.items(i) as ut_assert_result);
59-
print('assert ' || i || ' ' || assert.result_to_char || ' message: ' || assert.message);
60-
end loop;
61-
end if;
71+
print('result: ' || l_test.result_to_char||'. Took: '||to_char(l_duration));
6272
end;
6373

6474
end;

source/types/ut_dbms_output_suite_reporter.tps

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ create or replace type ut_dbms_output_suite_reporter force under ut_reporter
88

99
overriding member procedure before_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object),
1010
overriding member procedure before_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object),
11+
overriding member procedure before_asserts_process(self in out nocopy ut_dbms_output_suite_reporter, a_test in ut_object),
1112
overriding member procedure on_assert_process(self in out nocopy ut_dbms_output_suite_reporter, a_assert ut_object),
1213
overriding member procedure after_test(self in out nocopy ut_dbms_output_suite_reporter, a_test ut_object),
1314
overriding member procedure after_suite(self in out nocopy ut_dbms_output_suite_reporter, a_suite ut_object)

0 commit comments

Comments
 (0)