@@ -27,14 +27,15 @@ public class ValidateUnitTestsCommand : CommandTarget
27
27
{
28
28
public string ResultsDirectory { get ; set ; }
29
29
30
+ public bool PrettyPrint { get ; set ; }
30
31
31
32
public override void Run ( )
32
33
{
33
34
Log < ValidateUnitTestsCommand > . G ( ) . LogInformation ( $ "Validating unit tests in { ResultsDirectory } ") ;
34
35
35
36
string [ ] results = Directory . GetFiles ( ResultsDirectory , "test_report_*" , SearchOption . AllDirectories ) ;
36
37
37
- List < UnitTestResult > failures = new List < UnitTestResult > ( ) ;
38
+ List < UnitTestResult > unitTestResults = new List < UnitTestResult > ( ) ;
38
39
39
40
foreach ( string result in results )
40
41
{
@@ -44,75 +45,92 @@ public override void Run()
44
45
List < UnitTestResult > items = JsonConvert . DeserializeObject < List < UnitTestResult > > ( json ) ;
45
46
46
47
foreach ( var item in items )
47
- {
48
- if ( item . pass == false )
49
- {
50
- failures . Add ( item ) ;
51
- }
48
+ {
49
+ unitTestResults . Add ( item ) ;
52
50
}
53
51
}
54
52
}
55
53
56
- if ( failures . Count > 0 )
57
- {
58
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "One or more unit tests failed. Details below:") ;
59
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "---------------------------------------------") ;
60
54
61
- int totalCases = failures . Count ;
62
- int currentCase = 0 ;
55
+ int totalCases = unitTestResults . Count ;
56
+ int currentCase = 0 ;
63
57
58
+ foreach ( var item in unitTestResults )
59
+ {
60
+ currentCase ++ ;
64
61
65
- foreach ( var item in failures )
62
+ if ( item . pass )
66
63
{
67
- currentCase ++ ;
68
-
69
- if ( item . failureStage == "RESULT" )
64
+ if ( PrettyPrint )
65
+ {
66
+ Console . WriteLine ( $ " ✅ [PASS] ({ currentCase } of { totalCases } ) { item . test } ") ;
67
+ }
68
+ else
70
69
{
71
70
Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
72
71
Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| TEST CASE ({ currentCase } of { totalCases } ) : { Path . GetFileName ( item . test ) } ") ;
73
72
Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
74
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| STATUS : FAILED ") ;
75
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FAILURE TYPE : RESULT") ;
73
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| STATUS : PASSED ") ;
76
74
Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
77
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| TEST DIFFERENCES |") ;
78
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
79
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FULL PATH : { item . test } ") ;
75
+ }
76
+ }
77
+ else
78
+ {
79
+ if ( PrettyPrint )
80
+ {
81
+ Console . WriteLine ( $ "❌ [FAIL] ({ currentCase } of { totalCases } ) { item . test } ") ;
82
+ }
83
+ else
84
+ {
85
+ if ( item . failureStage == "RESULT" )
86
+ {
87
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
88
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| TEST CASE ({ currentCase } of { totalCases } ) : { Path . GetFileName ( item . test ) } ") ;
89
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
90
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| STATUS : FAILED ") ;
91
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FAILURE TYPE : RESULT") ;
92
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
93
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| TEST DIFFERENCES |") ;
94
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
95
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FULL PATH : { item . test } ") ;
80
96
81
97
82
- foreach ( var diff in item . diff )
83
- {
84
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| { diff } ") ;
85
- }
86
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
98
+ foreach ( var diff in item . diff )
99
+ {
100
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| { diff } ") ;
101
+ }
102
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
87
103
88
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "\n \n \n \n ") ;
104
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "\n \n \n \n ") ;
89
105
90
- }
91
- else
92
- {
93
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
94
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| TEST CASE ({ currentCase } of { totalCases } ) : { Path . GetFileName ( item . test ) } ") ;
95
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
96
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| STATUS : FAILED ") ;
97
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FAILURE TYPE : { item . failureStage } ") ;
98
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
99
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FAILURE DESCRIPTION |") ;
100
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
101
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FULL PATH : { item . test } ") ;
102
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| { item . failureDescription } ") ;
106
+ }
107
+ else
108
+ {
109
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
110
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| TEST CASE ({ currentCase } of { totalCases } ) : { Path . GetFileName ( item . test ) } ") ;
111
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
112
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| STATUS : FAILED ") ;
113
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FAILURE TYPE : { item . failureStage } ") ;
114
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
115
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FAILURE DESCRIPTION |") ;
116
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
117
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| FULL PATH : { item . test } ") ;
118
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "| { item . failureDescription } ") ;
103
119
104
120
105
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
121
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "+----------------------------------------------+") ;
106
122
107
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "\n \n \n \n ") ;
123
+ Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "\n \n \n \n ") ;
108
124
125
+ }
109
126
}
110
127
}
111
- Log < ValidateUnitTestsCommand > . G ( ) . LogError ( $ "--------------------END OF RESULTS-------------------------" ) ;
128
+ }
112
129
130
+ if ( unitTestResults . Select ( x => x . pass == false ) . Count ( ) > 0 )
131
+ {
113
132
DieWithError ( "One or more failures during run unit tests." ) ;
114
133
}
115
-
116
- }
134
+ }
117
135
}
118
136
}
0 commit comments