3
3
4
4
namespace JUnit . Xml . TestLogger . AcceptanceTests
5
5
{
6
- using System ;
7
- using System . IO ;
8
- using System . Linq ;
9
6
using System . Xml . Linq ;
10
7
using System . Xml . XPath ;
11
8
using global ::TestLogger . Fixtures ;
@@ -22,8 +19,6 @@ namespace JUnit.Xml.TestLogger.AcceptanceTests
22
19
[ TestClass ]
23
20
public class JUnitTestLoggerStoreConsoleOutputOptionsAcceptanceTests
24
21
{
25
- private const string AssetName = "JUnit.Xml.TestLogger.NetCore.Tests" ;
26
-
27
22
[ TestMethod ]
28
23
public void StoreConsoleOutput_Default_ContainsConsoleOut ( )
29
24
{
@@ -35,14 +30,18 @@ public void StoreConsoleOutput_Default_ContainsConsoleOut()
35
30
. Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-default-test-results.xml" ) ;
36
31
37
32
XDocument resultsXml = XDocument . Load ( resultsFile ) ;
38
- var node = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
39
33
40
- Assert . IsTrue ( node . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
41
- Assert . IsTrue ( node . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
42
- Assert . IsTrue ( node . Value . Contains ( "{EEEE1DA6-6296-4486-BDA5-A50A19672F0F}" ) ) ;
43
- Assert . IsTrue ( node . Value . Contains ( "{C33FF4B5-75E1-4882-B968-DF9608BFE7C2}" ) ) ;
34
+ var passedTestCaseStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='PassTest11']/system-out" ) ;
35
+ Assert . IsTrue ( passedTestCaseStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
36
+ Assert . IsTrue ( passedTestCaseStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
37
+
38
+ var testSuiteStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
39
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
40
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
41
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{EEEE1DA6-6296-4486-BDA5-A50A19672F0F}" ) ) ;
42
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{C33FF4B5-75E1-4882-B968-DF9608BFE7C2}" ) ) ;
44
43
45
- this . TestCaseShouldHaveStdoutAndAttachment ( resultsXml , "PassTest11" ) ;
44
+ TestCaseShouldHaveAttachmentInStandardOut ( resultsXml , "PassTest11" ) ;
46
45
}
47
46
48
47
[ TestMethod ]
@@ -56,10 +55,14 @@ public void StoreConsoleOutput_Default_ContainsConsoleErr()
56
55
. Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-default-test-results.xml" ) ;
57
56
58
57
XDocument resultsXml = XDocument . Load ( resultsFile ) ;
59
- var node = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
60
58
61
- Assert . IsTrue ( node . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
62
- Assert . IsTrue ( node . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
59
+ var failedTestCaseStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='FailTest11']/system-err" ) ;
60
+ Assert . IsTrue ( failedTestCaseStdErrNode . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
61
+ Assert . IsTrue ( failedTestCaseStdErrNode . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
62
+
63
+ var testSuiteStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
64
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
65
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
63
66
}
64
67
65
68
[ TestMethod ]
@@ -73,14 +76,18 @@ public void StoreConsoleOutput_True_ContainsConsoleOut()
73
76
. Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-true-test-results.xml" ) ;
74
77
75
78
XDocument resultsXml = XDocument . Load ( resultsFile ) ;
76
- var node = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
77
79
78
- Assert . IsTrue ( node . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
79
- Assert . IsTrue ( node . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
80
- Assert . IsTrue ( node . Value . Contains ( "{EEEE1DA6-6296-4486-BDA5-A50A19672F0F}" ) ) ;
81
- Assert . IsTrue ( node . Value . Contains ( "{C33FF4B5-75E1-4882-B968-DF9608BFE7C2}" ) ) ;
80
+ var passedTestCaseStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='PassTest11']/system-out" ) ;
81
+ Assert . IsTrue ( passedTestCaseStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
82
+ Assert . IsTrue ( passedTestCaseStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
83
+
84
+ var testSuiteStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
85
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
86
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
87
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{EEEE1DA6-6296-4486-BDA5-A50A19672F0F}" ) ) ;
88
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{C33FF4B5-75E1-4882-B968-DF9608BFE7C2}" ) ) ;
82
89
83
- this . TestCaseShouldHaveStdoutAndAttachment ( resultsXml , "PassTest11" ) ;
90
+ TestCaseShouldHaveAttachmentInStandardOut ( resultsXml , "PassTest11" ) ;
84
91
}
85
92
86
93
[ TestMethod ]
@@ -94,14 +101,18 @@ public void StoreConsoleOutput_True_ContainsConsoleErr()
94
101
. Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-true-test-results.xml" ) ;
95
102
96
103
XDocument resultsXml = XDocument . Load ( resultsFile ) ;
97
- var node = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
98
104
99
- Assert . IsTrue ( node . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
100
- Assert . IsTrue ( node . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
105
+ var failedTestCaseStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='FailTest11']/system-err" ) ;
106
+ Assert . IsTrue ( failedTestCaseStdErrNode . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
107
+ Assert . IsTrue ( failedTestCaseStdErrNode . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
108
+
109
+ var testSuiteStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
110
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
111
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
101
112
}
102
113
103
114
[ TestMethod ]
104
- public void StoreConsoleOutput_False_ContainsConsoleOut ( )
115
+ public void StoreConsoleOutput_False_DoesNotContainConsoleOut ( )
105
116
{
106
117
var loggerArgs = "junit;LogFilePath=output-false-test-results.xml;StoreConsoleOutput=false" ;
107
118
@@ -111,15 +122,19 @@ public void StoreConsoleOutput_False_ContainsConsoleOut()
111
122
. Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-false-test-results.xml" ) ;
112
123
113
124
XDocument resultsXml = XDocument . Load ( resultsFile ) ;
114
- var node = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
115
125
116
- Assert . IsTrue ( node . Value . Equals ( string . Empty ) ) ;
126
+ var passedTestCaseStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='PassTest11']/system-out" ) ;
127
+ Assert . IsFalse ( passedTestCaseStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
128
+ Assert . IsFalse ( passedTestCaseStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
129
+
130
+ var testSuiteStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
131
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Equals ( string . Empty ) ) ;
117
132
118
- this . TestCaseShouldHaveStdoutAndAttachment ( resultsXml , "PassTest11" ) ;
133
+ TestCaseShouldHaveAttachmentInStandardOut ( resultsXml , "PassTest11" ) ;
119
134
}
120
135
121
136
[ TestMethod ]
122
- public void StoreConsoleOutput_False_ContainsConsoleErr ( )
137
+ public void StoreConsoleOutput_False_DoesNotContainConsoleErr ( )
123
138
{
124
139
var loggerArgs = "junit;LogFilePath=output-false-test-results.xml;StoreConsoleOutput=false" ;
125
140
@@ -129,12 +144,102 @@ public void StoreConsoleOutput_False_ContainsConsoleErr()
129
144
. Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-false-test-results.xml" ) ;
130
145
131
146
XDocument resultsXml = XDocument . Load ( resultsFile ) ;
132
- var node = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
133
147
134
- Assert . IsTrue ( node . Value . Equals ( string . Empty ) ) ;
148
+ var failedTestCaseStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='FailTest11']/system-err" ) ;
149
+ Assert . IsNull ( failedTestCaseStdErrNode ) ;
150
+
151
+ var testSuiteStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
152
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Equals ( string . Empty ) ) ;
153
+ }
154
+
155
+ [ TestMethod ]
156
+ public void StoreConsoleOutput_TestSuite_ContainsConsoleOutOnlyForTestSuite ( )
157
+ {
158
+ var loggerArgs = "junit;LogFilePath=output-testsuite-test-results.xml;StoreConsoleOutput=testsuite" ;
159
+
160
+ var resultsFile = DotnetTestFixture
161
+ . Create ( )
162
+ . WithBuild ( )
163
+ . Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-testsuite-test-results.xml" ) ;
164
+
165
+ XDocument resultsXml = XDocument . Load ( resultsFile ) ;
166
+
167
+ var passedTestCaseStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='PassTest11']/system-out" ) ;
168
+ Assert . IsFalse ( passedTestCaseStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
169
+ Assert . IsFalse ( passedTestCaseStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
170
+
171
+ var testSuiteStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
172
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
173
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
174
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{EEEE1DA6-6296-4486-BDA5-A50A19672F0F}" ) ) ;
175
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Contains ( "{C33FF4B5-75E1-4882-B968-DF9608BFE7C2}" ) ) ;
176
+
177
+ TestCaseShouldHaveAttachmentInStandardOut ( resultsXml , "PassTest11" ) ;
178
+ }
179
+
180
+ [ TestMethod ]
181
+ public void StoreConsoleOutput_TestSuite_ContainsConsoleErrOnlyForTestSuite ( )
182
+ {
183
+ var loggerArgs = "junit;LogFilePath=output-testsuite-test-results.xml;StoreConsoleOutput=testsuite" ;
184
+
185
+ var resultsFile = DotnetTestFixture
186
+ . Create ( )
187
+ . WithBuild ( )
188
+ . Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-testsuite-test-results.xml" ) ;
189
+
190
+ XDocument resultsXml = XDocument . Load ( resultsFile ) ;
191
+
192
+ var failedTestCaseStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='FailTest11']/system-err" ) ;
193
+ Assert . IsNull ( failedTestCaseStdErrNode ) ;
194
+
195
+ var testSuiteStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
196
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
197
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
198
+ }
199
+
200
+ [ TestMethod ]
201
+ public void StoreConsoleOutput_TestCase_ContainsConsoleOutOnlyForTestCase ( )
202
+ {
203
+ var loggerArgs = "junit;LogFilePath=output-testcase-test-results.xml;StoreConsoleOutput=testcase" ;
204
+
205
+ var resultsFile = DotnetTestFixture
206
+ . Create ( )
207
+ . WithBuild ( )
208
+ . Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-testcase-test-results.xml" ) ;
209
+
210
+ XDocument resultsXml = XDocument . Load ( resultsFile ) ;
211
+
212
+ var passedTestCaseStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='PassTest11']/system-out" ) ;
213
+ Assert . IsTrue ( passedTestCaseStdOutNode . Value . Contains ( "{2010CAE3-7BC0-4841-A5A3-7D5F947BB9FB}" ) ) ;
214
+ Assert . IsTrue ( passedTestCaseStdOutNode . Value . Contains ( "{998AC9EC-7429-42CD-AD55-72037E7AF3D8}" ) ) ;
215
+
216
+ var testSuiteStdOutNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-out" ) ;
217
+ Assert . IsTrue ( testSuiteStdOutNode . Value . Equals ( string . Empty ) ) ;
218
+
219
+ TestCaseShouldHaveAttachmentInStandardOut ( resultsXml , "PassTest11" ) ;
220
+ }
221
+
222
+ [ TestMethod ]
223
+ public void StoreConsoleOutput_TestCase_ContainsConsoleErrOnlyForTestCase ( )
224
+ {
225
+ var loggerArgs = "junit;LogFilePath=output-testcase-test-results.xml;StoreConsoleOutput=testcase" ;
226
+
227
+ var resultsFile = DotnetTestFixture
228
+ . Create ( )
229
+ . WithBuild ( )
230
+ . Execute ( "JUnit.Xml.TestLogger.NetCore.Tests" , loggerArgs , collectCoverage : false , "output-testcase-test-results.xml" ) ;
231
+
232
+ XDocument resultsXml = XDocument . Load ( resultsFile ) ;
233
+
234
+ var failedTestCaseStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/*[@name='FailTest11']/system-err" ) ;
235
+ Assert . IsTrue ( failedTestCaseStdErrNode . Value . Contains ( "{D46DFA10-EEDD-49E5-804D-FE43051331A7}" ) ) ;
236
+ Assert . IsTrue ( failedTestCaseStdErrNode . Value . Contains ( "{33F5FD22-6F40-499D-98E4-481D87FAEAA1}" ) ) ;
237
+
238
+ var testSuiteStdErrNode = resultsXml . XPathSelectElement ( "/testsuites/testsuite/system-err" ) ;
239
+ Assert . IsTrue ( testSuiteStdErrNode . Value . Equals ( string . Empty ) ) ;
135
240
}
136
241
137
- private void TestCaseShouldHaveStdoutAndAttachment ( XDocument resultsXml , string testcaseName )
242
+ private static void TestCaseShouldHaveAttachmentInStandardOut ( XDocument resultsXml , string testcaseName )
138
243
{
139
244
var node = resultsXml . XPathSelectElement ( $ "/testsuites/testsuite/*[@name='{ testcaseName } ']/system-out") ;
140
245
0 commit comments