@@ -19,9 +19,8 @@ public override async Task RunTestsAsync(List<string> paths, Action<@event> cons
19
19
{
20
20
string realtimeReporterId = Guid . NewGuid ( ) . ToString ( ) . Replace ( "-" , "" ) ;
21
21
22
- Task taskRun = UtRunAsync ( realtimeReporterId , paths ) ;
23
-
24
- Task taskConsume = ConsumeResultAsync ( realtimeReporterId , consumer ) ;
22
+ Task taskRun = Task . Run ( ( ) => { UtRun ( realtimeReporterId , paths ) ; } ) ;
23
+ Task taskConsume = Task . Run ( ( ) => { ConsumeResult ( realtimeReporterId , consumer ) ; } ) ;
25
24
26
25
await Task . WhenAll ( taskRun , taskConsume ) ;
27
26
}
@@ -39,25 +38,28 @@ public override async Task<string> RunTestsWithCoverageAsync(List<string> paths,
39
38
string realtimeReporterId = Guid . NewGuid ( ) . ToString ( ) . Replace ( "-" , "" ) ;
40
39
string coverageReporterId = Guid . NewGuid ( ) . ToString ( ) . Replace ( "-" , "" ) ;
41
40
42
- Task taskRun = UtRunWithCoverageAsync ( realtimeReporterId , coverageReporterId , paths , coverageSchemas , includeObjects , excludeObjects ) ;
43
-
44
- Task taskConsume = ConsumeResultAsync ( realtimeReporterId , consumer ) ;
41
+ Task taskRun = Task . Run ( ( ) => { UtRunWithCoverage ( realtimeReporterId , coverageReporterId , paths , coverageSchemas , includeObjects , excludeObjects ) ; } ) ;
42
+ Task taskConsume = Task . Run ( ( ) => { ConsumeResult ( realtimeReporterId , consumer ) ; } ) ;
43
+ Task < string > taskCoverateReport = Task . Run ( ( ) => { return GetCoverageReport ( coverageReporterId ) ; } ) ;
45
44
46
- await Task . WhenAll ( taskRun , taskConsume ) ;
45
+ await Task . WhenAll ( taskRun , taskConsume , taskCoverateReport ) ;
47
46
48
- return await GetCoverageReportAsync ( coverageReporterId ) ;
47
+ return taskCoverateReport . Result ;
49
48
}
50
49
else
51
50
{
52
51
return null ;
53
52
}
54
53
}
55
54
56
- private async Task UtRunWithCoverageAsync ( string realtimeReporterId , string coverageReporterId , List < string > paths , List < string > coverageSchemas , List < string > includeObjects , List < string > excludeObjects )
55
+ public override async Task < string > RunTestsWithCoverageAsync ( string path , Action < @event > consumer , string coverageSchema = null , List < string > includeObjects = null , List < string > excludeObjects = null )
57
56
{
58
- await Task . Run ( ( ) =>
59
- {
60
- var proc = $@ "DECLARE
57
+ return await RunTestsWithCoverageAsync ( new List < string > ( ) { path } , consumer , new List < string > ( ) { coverageSchema } , includeObjects , excludeObjects ) ;
58
+ }
59
+
60
+ private void UtRunWithCoverage ( string realtimeReporterId , string coverageReporterId , List < string > paths , List < string > coverageSchemas , List < string > includeObjects , List < string > excludeObjects )
61
+ {
62
+ var proc = $@ "DECLARE
61
63
l_rt_rep ut_realtime_reporter := ut_realtime_reporter();
62
64
l_cov_rep ut_coverage_html_reporter := ut_coverage_html_reporter();
63
65
BEGIN
@@ -68,48 +70,40 @@ await Task.Run(() =>
68
70
sys.dbms_output.enable(NULL);
69
71
ut_runner.run(a_paths => ut_varchar2_list({ ConvertToUtVarchar2List ( paths ) } ), " ;
70
72
71
- if ( coverageSchemas != null && coverageSchemas . Count > 0 )
72
- {
73
- proc += $ "a_coverage_schemes => ut_varchar2_list({ ConvertToUtVarchar2List ( coverageSchemas ) } ), ";
74
- }
73
+ if ( coverageSchemas != null && coverageSchemas . Count > 0 )
74
+ {
75
+ proc += $ "a_coverage_schemes => ut_varchar2_list({ ConvertToUtVarchar2List ( coverageSchemas ) } ), ";
76
+ }
75
77
76
- if ( includeObjects != null && includeObjects . Count > 0 )
77
- {
78
- proc += $ "a_include_objects => ut_varchar2_list({ ConvertToUtVarchar2List ( includeObjects ) } ), ";
79
- }
78
+ if ( includeObjects != null && includeObjects . Count > 0 )
79
+ {
80
+ proc += $ "a_include_objects => ut_varchar2_list({ ConvertToUtVarchar2List ( includeObjects ) } ), ";
81
+ }
80
82
81
- if ( excludeObjects != null && excludeObjects . Count > 0 )
82
- {
83
- proc += $ "a_exclude_objects => ut_varchar2_list({ ConvertToUtVarchar2List ( excludeObjects ) } ), ";
84
- }
83
+ if ( excludeObjects != null && excludeObjects . Count > 0 )
84
+ {
85
+ proc += $ "a_exclude_objects => ut_varchar2_list({ ConvertToUtVarchar2List ( excludeObjects ) } ), ";
86
+ }
85
87
86
- proc += @" a_reporters => ut_reporters(l_rt_rep, l_cov_rep));
88
+ proc += @" a_reporters => ut_reporters(l_rt_rep, l_cov_rep));
87
89
sys.dbms_output.disable;
88
90
END;" ;
89
91
90
- var cmd = new OracleCommand ( proc , produceConnection ) ;
91
- runningCommands . Add ( cmd ) ;
92
+ var cmd = new OracleCommand ( proc , produceConnection ) ;
93
+ runningCommands . Add ( cmd ) ;
92
94
93
- cmd . Parameters . Add ( "id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = realtimeReporterId ;
94
- cmd . Parameters . Add ( "coverage_id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = coverageReporterId ;
95
+ cmd . Parameters . Add ( "id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = realtimeReporterId ;
96
+ cmd . Parameters . Add ( "coverage_id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = coverageReporterId ;
95
97
96
- cmd . ExecuteNonQuery ( ) ;
98
+ cmd . ExecuteNonQuery ( ) ;
97
99
98
- runningCommands . Remove ( cmd ) ;
99
- cmd . Dispose ( ) ;
100
- } ) ;
101
- }
102
-
103
- public override async Task < string > RunTestsWithCoverageAsync ( string path , Action < @event > consumer , string coverageSchema = null , List < string > includeObjects = null , List < string > excludeObjects = null )
104
- {
105
- return await RunTestsWithCoverageAsync ( new List < string > ( ) { path } , consumer , new List < string > ( ) { coverageSchema } , includeObjects , excludeObjects ) ;
100
+ runningCommands . Remove ( cmd ) ;
101
+ cmd . Dispose ( ) ;
106
102
}
107
103
108
- private async Task UtRunAsync ( string id , List < string > paths )
104
+ private void UtRun ( string id , List < string > paths )
10000
code>
109
105
{
110
- await Task . Run ( ( ) =>
111
- {
112
- var proc = $@ "DECLARE
106
+ var proc = $@ "DECLARE
113
107
l_reporter ut_realtime_reporter := ut_realtime_reporter();
114
108
BEGIN
115
109
l_reporter.set_reporter_id(:id);
@@ -118,53 +112,49 @@ await Task.Run(() =>
118
112
a_reporters => ut_reporters(l_reporter));
119
113
END;" ;
120
114
121
- var cmd = new OracleCommand ( proc , produceConnection ) ;
122
- runningCommands . Add ( cmd ) ;
115
+ var cmd = new OracleCommand ( proc , produceConnection ) ;
116
+ runningCommands . Add ( cmd ) ;
123
117
124
- cmd . Parameters . Add ( "id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = id ;
125
- cmd . ExecuteNonQuery ( ) ;
118
+ cmd . Parameters . Add ( "id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = id ;
119
+ cmd . ExecuteNonQuery ( ) ;
126
120
127
- runningCommands . Remove ( cmd ) ;
128
- cmd . Dispose ( ) ;
129
- } ) ;
121
+ runningCommands . Remove ( cmd ) ;
122
+ cmd . Dispose ( ) ;
130
123
}
131
124
132
- private async Task ConsumeResultAsync ( string id , Action < @event > action )
125
+ private void ConsumeResult ( string id , Action < @event > action )
133
126
{
134
- await Task . Run ( ( ) =>
135
- {
136
- var proc = @"DECLARE
127
+ var proc = @"DECLARE
137
128
l_reporter ut_realtime_reporter := ut_realtime_reporter();
138
129
BEGIN
139
130
l_reporter.set_reporter_id(:id);
140
131
:lines_cursor := l_reporter.get_lines_cursor();
141
132
END;" ;
142
133
143
- var cmd = new OracleCommand ( proc , consumeConnection ) ;
144
- runningCommands . Add ( cmd ) ;
134
+ var cmd = new OracleCommand ( proc , consumeConnection ) ;
135
+ runningCommands . Add ( cmd ) ;
145
136
146
- cmd . Parameters . Add ( "id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = id ;
147
- cmd . Parameters . Add ( "lines_cursor" , OracleDbType . RefCursor , ParameterDirection . Output ) ;
137
+ cmd . Parameters . Add ( "id" , OracleDbType . Varchar2 , ParameterDirection . Input ) . Value = id ;
138
+ cmd . Parameters . Add ( "lines_cursor" , OracleDbType . RefCursor , ParameterDirection . Output ) ;
148
139
149
- // https://stackoverflow.com/questions/2226769/bad-performance-with-oracledatareader
150
- cmd . InitialLOBFetchSize = - 1 ;
140
+ // https://stackoverflow.com/questions/2226769/bad-performance-with-oracledatareader
141
+ cmd . InitialLOBFetchSize = - 1 ;
151
142
152
- var reader = cmd . ExecuteReader ( ) ;
153
- while ( reader . Read ( ) )
154
- {
155
- var xml = reader . GetString ( 0 ) ;
143
+ var reader = cmd . ExecuteReader ( ) ;
144
+ while ( reader . Read ( ) )
145
+ {
146
+ var xml = reader . GetString ( 0 ) ;
156
147
157
- var serializer = new XmlSerializer ( typeof ( @event ) ) ;
158
- var @event = ( @event ) serializer . Deserialize ( new StringReader ( xml ) ) ;
148
+ var serializer = new XmlSerializer ( typeof ( @event ) ) ;
149
+ var @event = ( @event ) serializer . Deserialize ( new StringReader ( xml ) ) ;
159
150
160
- action . Invoke ( @event ) ;
161
- }
151
+ action . Invoke ( @event ) ;
152
+ }
162
153
163
- reader . Close ( ) ;
154
+ reader . Close ( ) ;
164
155
165
- runningCommands . Remove ( cmd ) ;
166
- cmd . Dispose ( ) ;
167
- } ) ;
156
+ runningCommands . Remove ( cmd ) ;
157
+ cmd . Dispose ( ) ;
168
158
}
169
159
}
170
160
}
0 commit comments