@@ -25,9 +25,10 @@ const (
2525
2626func TestRun (t * testing.T ) {
2727 testCases := []struct {
28- name string
29- runner Runner
30- expected map [string ]* expectedTestResult
28+ name string
29+ runner Runner
30+ expectedRuns int
31+ expectedResults map [string ]* expectedTestResult
3132 }{
3233 {
3334 name : "default" ,
@@ -41,7 +42,8 @@ func TestRun(t *testing.T) {
4142 SelectedTestPackages : []string {flakyTestPackagePath },
4243 CollectRawOutput : true ,
4344 },
44- expected : map [string ]* expectedTestResult {
45+ expectedRuns : defaultRuns ,
46+ expectedResults : map [string ]* expectedTestResult {
4547 "TestFlaky" : {
4648 TestResult : & reports.TestResult {
4749 TestName : "TestFlaky" ,
@@ -98,7 +100,8 @@ func TestRun(t *testing.T) {
98100 SelectedTestPackages : []string {flakyTestPackagePath },
99101 CollectRawOutput : true ,
100102 },
101- expected : map [string ]* expectedTestResult {
103+ expectedRuns : defaultRuns ,
104+ expectedResults : map [string ]* expectedTestResult {
102105 "TestFlaky" : {
103106 TestResult : & reports.TestResult {
104107 TestName : "TestFlaky" ,
@@ -155,14 +158,73 @@ func TestRun(t *testing.T) {
155158 runner : Runner {
156159 ProjectPath : "./" ,
157160 Verbose : true ,
158- RunCount : defaultRuns ,
161+ RunCount : defaultRuns * 2 ,
159162 UseRace : true ,
160163 SkipTests : []string {"TestPanic" },
161164 FailFast : false ,
162165 SelectedTestPackages : []string {flakyTestPackagePath },
163166 CollectRawOutput : true ,
164167 },
165- expected : map [string ]* expectedTestResult {
168+ expectedRuns : defaultRuns * 2 ,
169+ expectedResults : map [string ]* expectedTestResult {
170+ "TestFlaky" : {
171+ TestResult : & reports.TestResult {
172+ TestName : "TestFlaky" ,
173+ Panicked : false ,
174+ Skipped : false ,
175+ },
176+ },
177+ "TestFail" : {
178+ TestResult : & reports.TestResult {
179+ TestName : "TestFail" ,
180+ Panicked : false ,
181+ Skipped : false ,
182+ PassRatio : 0 ,
183+ Failures : defaultRuns ,
184+ },
185+ },
186+ "TestPass" : {
187+ TestResult : & reports.TestResult {
188+ TestName : "TestPass" ,
189+ Panicked : false ,
190+ Skipped : false ,
191+ PassRatio : 1 ,
192+ Successes : defaultRuns ,
193+ },
194+ },
195+ "TestSkipped" : {
196+ TestResult : & reports.TestResult {
197+ TestName : "TestSkipped" ,
198+ Panicked : false ,
199+ Skipped : true ,
200+ PassRatio : 0 ,
201+ },
202+ },
203+ "TestRace" : {
204+ TestResult : & reports.TestResult {
205+ TestName : "TestPass" ,
206+ Panicked : false ,
207+ Skipped : false ,
208+ PassRatio : 0 ,
209+ Failures : defaultRuns ,
210+ },
211+ },
212+ },
213+ },
214+ {
215+ name : "failfast" ,
216+ runner : Runner {
217+ ProjectPath : "./" ,
218+ Verbose : true ,
219+ RunCount : defaultRuns ,
220+ UseRace : false ,
221+ SkipTests : []string {"TestPanic" },
222+ FailFast : true ,
223+ SelectedTestPackages : []string {flakyTestPackagePath },
224+ CollectRawOutput : true ,
225+ },
226+ expectedRuns : 1 ,
227+ expectedResults : map [string ]* expectedTestResult {
166228 "TestFlaky" : {
167229 TestResult : & reports.TestResult {
168230 TestName : "TestFlaky" ,
@@ -217,12 +279,12 @@ func TestRun(t *testing.T) {
217279
218280 for _ , result := range testResults {
219281 t .Run (fmt .Sprintf ("checking results of %s" , result .TestName ), func (t * testing.T ) {
220- expected , ok := tc .expected [result .TestName ]
282+ expected , ok := tc .expectedResults [result .TestName ]
221283 require .True (t , ok , "unexpected test result: %s" , result .TestName )
222284 require .False (t , expected .seen , "test '%s' was seen multiple times" , result .TestName )
223285 expected .seen = true
224286
225- assert .Equal (t , defaultRuns , result .Runs , "test '%s' had an unexpected number of runs" , result .TestName )
287+ assert .Equal (t , tc . expectedRuns , result .Runs , "test '%s' had an unexpected number of runs" , result .TestName )
226288 assert .Len (t , result .Durations , result .Runs , "test '%s' has a mismatch of runs and duration counts" , result .TestName , defaultRuns )
227289 resultCounts := result .Successes + result .Failures + result .Panics + result .Skips
228290 assert .Equal (t , result .Runs , resultCounts ,
@@ -245,7 +307,7 @@ func TestRun(t *testing.T) {
245307 })
246308 }
247309
248- for _ , expected := range tc .expected {
310+ for _ , expected := range tc .expectedResults {
249311 assert .True (t , expected .seen , "expected test '%s' not found in test runs" , expected .TestResult .TestName )
250312 }
251313 })
0 commit comments