29
29
_logger .setLevel (logging .INFO )
30
30
31
31
UNSUPPORTED_FEATURE = 33
32
-
32
+ RUNTIME = sys . version_info . major
33
33
34
34
class CompareFail (Exception ):
35
35
@@ -48,20 +48,21 @@ class TestResult(object):
48
48
49
49
"""Encapsulate relevant test result data."""
50
50
51
- def __init__ (self , return_code , standard_output , error_output , duration , message = '' ):
52
- # type: (int, Text, Text, float, str) -> None
51
+ def __init__ (self , return_code , standard_output , error_output , duration , classname , message = '' ):
52
+ # type: (int, Text, Text, float, Text, str) -> None
53
53
self .return_code = return_code
54
54
self .standard_output = standard_output
55
55
self .error_output = error_output
56
56
self .duration = duration
57
57
self .message = message
58
+ self .classname = classname
58
59
59
60
def create_test_case (self , test ):
60
61
# type: (Dict[Text, Any]) -> junit_xml.TestCase
61
62
doc = test .get (u'doc' , 'N/A' ).strip ()
62
63
case = junit_xml .TestCase (
63
- doc , elapsed_sec = self .duration ,
64
- stdout = self .standard_output , stderr = self .error_output
64
+ doc , elapsed_sec = self .duration , classname = self . classname ,
65
+ stdout = self .standard_output , stderr = self .error_output ,
65
66
)
66
67
if self .return_code > 0 :
67
68
case .failure_message = self .message
@@ -218,13 +219,13 @@ def run_test(args, i, tests): # type: (argparse.Namespace, int, List[Dict[str,
218
219
_logger .error (outerr )
219
220
except subprocess .CalledProcessError as err :
220
221
if err .returncode == UNSUPPORTED_FEATURE :
221
- return TestResult (UNSUPPORTED_FEATURE , outstr , outerr , duration )
222
+ return TestResult (UNSUPPORTED_FEATURE , outstr , outerr , duration , args . classname )
222
223
else :
223
224
_logger .error (u"""Test failed: %s""" , " " .join ([pipes .quote (tc ) for tc in test_command ]))
224
225
_logger .error (t .get ("doc" ))
225
226
_logger .error ("Returned non-zero" )
226
227
_logger .error (outerr )
227
- return TestResult (1 , outstr , outerr , duration , str (err ))
228
+ return TestResult (1 , outstr , outerr , duration , args . classname , str (err ))
228
229
except (yamlscanner .ScannerError , TypeError ) as e :
229
230
_logger .error (u"""Test failed: %s""" , " " .join ([pipes .quote (tc ) for tc in test_command ]))
230
231
_logger .error (outstr )
@@ -247,7 +248,7 @@ def run_test(args, i, tests): # type: (argparse.Namespace, int, List[Dict[str,
247
248
if outdir :
248
249
shutil .rmtree (outdir , True )
249
250
250
- return TestResult ((1 if fail_message else 0 ), outstr , outerr , duration , fail_message )
251
+ return TestResult ((1 if fail_message else 0 ), outstr , outerr , duration , args . classname , fail_message )
251
252
252
253
253
254
def main (): # type: () -> int
@@ -267,6 +268,7 @@ def main(): # type: () -> int
267
268
parser .add_argument ("-j" , type = int , default = 1 , help = "Specifies the number of tests to run simultaneously "
268
269
"(defaults to one)." )
269
270
parser .add_argument ("--verbose" , action = "store_true" , help = "More verbose output during test run." )
271
+ parser .add_argument ("--classname" , type = str , default = "" , help = "Specify classname for the Test Suite." )
270
272
271
273
args = parser .parse_args ()
272
274
if '--' in args .args :
0 commit comments