@@ -26,6 +26,7 @@ Task("_NetFramework_Unit_Tests_WithRetry")
2626
2727 var resultsPath = paths . TestResults . CombineWithFilePath ( "xunit-netframework-unit.xml" ) ;
2828
29+ var initialFailedTests = new List < string > ( ) ;
2930 try
3031 {
3132 var settings = testExecutionHelper . CreateXUnitSettings ( "xunit-netframework-unit" , isIntegration : false ) ;
@@ -34,20 +35,31 @@ Task("_NetFramework_Unit_Tests_WithRetry")
3435 catch
3536 {
3637 Warning ( "Some tests failed. Retrying failed tests..." ) ;
38+ initialFailedTests = testRetryHelper . FindFailedXUnitTests ( resultsPath ) ;
3739 }
3840
39- testExecutionHelper . RetryFailedXUnitTests (
40- testAssemblies ,
41- resultsPath ,
42- testRetryHelper ,
43- ( test ) => testExecutionHelper . CreateXUnitSettings ( "retry" , isIntegration : false , isRetry : true )
44- ) ;
45-
46- // Check if any tests still failed after retry
47- var stillFailedTests = testRetryHelper . FindFailedXUnitTests ( resultsPath ) ;
48- if ( stillFailedTests . Any ( ) )
41+ if ( initialFailedTests . Any ( ) )
4942 {
50- throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
43+ testExecutionHelper . RetryFailedXUnitTests (
44+ testAssemblies ,
45+ resultsPath ,
46+ testRetryHelper ,
47+ ( test ) => testExecutionHelper . CreateXUnitSettings ( "retry" , isIntegration : false , isRetry : true )
48+ ) ;
49+
50+ // Check retry result files to see if tests still failed
51+ var stillFailedTests = new List < string > ( ) ;
52+ for ( int i = 1 ; i <= initialFailedTests . Count ; i ++ )
53+ {
54+ var retryResultsPath = paths . TestResults . CombineWithFilePath ( $ "xunit-netframework-unit-{ i } .xml") ;
55+ var retryFailed = testRetryHelper . FindFailedXUnitTests ( retryResultsPath ) ;
56+ stillFailedTests . AddRange ( retryFailed ) ;
57+ }
58+
59+ if ( stillFailedTests . Any ( ) )
60+ {
61+ throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
62+ }
5163 }
5264} ) ;
5365
@@ -75,6 +87,7 @@ Task("_NetFramework_Integration_Tests_WithRetry")
7587
7688 var resultsPath = paths . TestResults . CombineWithFilePath ( "xunit-netframework-integration.xml" ) ;
7789
90+ var initialFailedTests = new List < string > ( ) ;
7891 try
7992 {
8093 var settings = testExecutionHelper . CreateXUnitSettings ( "xunit-netframework-integration" , isIntegration : true ) ;
@@ -83,20 +96,31 @@ Task("_NetFramework_Integration_Tests_WithRetry")
8396 catch
8497 {
8598 Warning ( "Some tests failed. Retrying failed tests..." ) ;
99+ initialFailedTests = testRetryHelper . FindFailedXUnitTests ( resultsPath ) ;
86100 }
87101
88- testExecutionHelper . RetryFailedXUnitTests (
89- testAssemblies ,
90- resultsPath ,
91- testRetryHelper ,
92- ( test ) => testExecutionHelper . CreateXUnitSettings ( "retry" , isIntegration : true , isRetry : true )
93- ) ;
94-
95- // Check if any tests still failed after retry
96- var stillFailedTests = testRetryHelper . FindFailedXUnitTests ( resultsPath ) ;
97- if ( stillFailedTests . Any ( ) )
102+ if ( initialFailedTests . Any ( ) )
98103 {
99- throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
104+ testExecutionHelper . RetryFailedXUnitTests (
105+ testAssemblies ,
106+ resultsPath ,
107+ testRetryHelper ,
108+ ( test ) => testExecutionHelper . CreateXUnitSettings ( "retry" , isIntegration : true , isRetry : true )
109+ ) ;
110+
111+ // Check retry result files to see if tests still failed
112+ var stillFailedTests = new List < string > ( ) ;
113+ for ( int i = 1 ; i <= initialFailedTests . Count ; i ++ )
114+ {
115+ var retryResultsPath = paths . TestResults . CombineWithFilePath ( $ "xunit-netframework-integration-{ i } .xml") ;
116+ var retryFailed = testRetryHelper . FindFailedXUnitTests ( retryResultsPath ) ;
117+ stillFailedTests . AddRange ( retryFailed ) ;
118+ }
119+
120+ if ( stillFailedTests . Any ( ) )
121+ {
122+ throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
123+ }
100124 }
101125} ) ;
102126
@@ -131,22 +155,34 @@ Task("_NetStandard_Unit_Tests_WithRetry")
131155 var filter = testExecutionHelper . CreateUnitTestFilter ( IsRunningOnUnix ( ) ) ;
132156 var settings = testExecutionHelper . CreateDotNetTestSettings ( resultsPath , filter , framework , configuration ) ;
133157
158+ var initialFailedTests = new List < string > ( ) ;
134159 try
135160 {
136161 testExecutionHelper . RunDotNetTests ( project , settings ) ;
137162 }
138163 catch
139164 {
140165 Warning ( "Some tests failed. Retrying failed tests..." ) ;
166+ initialFailedTests = testRetryHelper . FindFailedDotNetTests ( resultsPath ) ;
141167 }
142168
143- testExecutionHelper . RetryFailedDotNetTests ( project , resultsPath , testRetryHelper , framework , configuration ) ;
144-
145- // Check if any tests still failed after retry
146- var stillFailedTests = testRetryHelper . FindFailedDotNetTests ( resultsPath ) ;
147- if ( stillFailedTests . Any ( ) )
169+ if ( initialFailedTests . Any ( ) )
148170 {
149- throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
171+ testExecutionHelper . RetryFailedDotNetTests ( project , resultsPath , testRetryHelper , framework , configuration ) ;
172+
173+ // Check retry result files to see if tests still failed
174+ var stillFailedTests = new List < string > ( ) ;
175+ for ( int i = 1 ; i <= initialFailedTests . Count ; i ++ )
176+ {
177+ var retryResultsPath = paths . TestResults . CombineWithFilePath ( $ "tests-netstandard-unit-{ i } .trx") ;
178+ var retryFailed = testRetryHelper . FindFailedDotNetTests ( retryResultsPath ) ;
179+ stillFailedTests . AddRange ( retryFailed ) ;
180+ }
181+
182+ if ( stillFailedTests . Any ( ) )
183+ {
184+ throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
185+ }
150186 }
151187} ) ;
152188
@@ -177,22 +213,34 @@ Task("_NetStandard_Integration_Tests_WithRetry")
177213 var filter = testExecutionHelper . CreateIntegrationTestFilter ( ) ;
178214 var settings = testExecutionHelper . CreateDotNetTestSettings ( resultsPath , filter , framework , configuration ) ;
179215
216+ var initialFailedTests = new List < string > ( ) ;
180217 try
181218 {
182219 testExecutionHelper . RunDotNetTests ( project , settings ) ;
183220 }
184221 catch
185222 {
186223 Warning ( "Some tests failed. Retrying failed tests..." ) ;
224+ initialFailedTests = testRetryHelper . FindFailedDotNetTests ( resultsPath ) ;
187225 }
188226
189- testExecutionHelper . RetryFailedDotNetTests ( project , resultsPath , testRetryHelper , framework , configuration ) ;
190-
191- // Check if any tests still failed after retry
192- var stillFailedTests = testRetryHelper . FindFailedDotNetTests ( resultsPath ) ;
193- if ( stillFailedTests . Any ( ) )
227+ if ( initialFailedTests . Any ( ) )
194228 {
195- throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
229+ testExecutionHelper . RetryFailedDotNetTests ( project , resultsPath , testRetryHelper , framework , configuration ) ;
230+
231+ // Check retry result files to see if tests still failed
232+ var stillFailedTests = new List < string > ( ) ;
233+ for ( int i = 1 ; i <= initialFailedTests . Count ; i ++ )
234+ {
235+ var retryResultsPath = paths . TestResults . CombineWithFilePath ( $ "tests-netstandard-integration-{ i } .trx") ;
236+ var retryFailed = testRetryHelper . FindFailedDotNetTests ( retryResultsPath ) ;
237+ stillFailedTests . AddRange ( retryFailed ) ;
238+ }
239+
240+ if ( stillFailedTests . Any ( ) )
241+ {
242+ throw new Exception ( $ "{ stillFailedTests . Count } test(s) failed after retry") ;
243+ }
196244 }
197245} ) ;
198246
0 commit comments