diff --git a/python/pyspark/ml/tests.py b/python/pyspark/ml/tests.py index 6a2577d66f287dbe411214b54bf3eb91499c083e..7a16cf52cccb268426306494885436e07320295f 100644 --- a/python/pyspark/ml/tests.py +++ b/python/pyspark/ml/tests.py @@ -20,6 +20,10 @@ Unit tests for Spark ML Python APIs. """ import sys +try: + import xmlrunner +except ImportError: + xmlrunner = None if sys.version_info[:2] <= (2, 6): try: @@ -368,4 +372,7 @@ class CrossValidatorTests(PySparkTestCase): if __name__ == "__main__": - unittest.main() + if xmlrunner: + unittest.main(testRunner=xmlrunner.XMLTestRunner(output='target/test-reports')) + else: + unittest.main() diff --git a/python/pyspark/mllib/tests.py b/python/pyspark/mllib/tests.py index 2ad69a0ab1d3dd2982cbd7a1354fa872822ec07b..f8e8e0e0adbea3f2c8d3fb93304078de2a655f71 100644 --- a/python/pyspark/mllib/tests.py +++ b/python/pyspark/mllib/tests.py @@ -31,6 +31,10 @@ from numpy import ( from numpy import sum as array_sum from py4j.protocol import Py4JJavaError +try: + import xmlrunner +except ImportError: + xmlrunner = None if sys.version > '3': basestring = str @@ -1538,7 +1542,10 @@ class MLUtilsTests(MLlibTestCase): if __name__ == "__main__": if not _have_scipy: print("NOTE: Skipping SciPy tests as it does not seem to be installed") - unittest.main() + if xmlrunner: + unittest.main(testRunner=xmlrunner.XMLTestRunner(output='target/test-reports')) + else: + unittest.main() if not _have_scipy: print("NOTE: SciPy tests were skipped as it does not seem to be installed") sc.stop() diff --git a/python/pyspark/sql/tests.py b/python/pyspark/sql/tests.py index f465e1fa209419478f10b6d7944a008e0f1f72ba..6356d4bd6669b8f5204bbdb65522f6e8f7ba708f 100644 --- a/python/pyspark/sql/tests.py +++ b/python/pyspark/sql/tests.py @@ -31,6 +31,10 @@ import time import datetime import py4j +try: + import xmlrunner +except ImportError: + xmlrunner = None if sys.version_info[:2] <= (2, 6): try: @@ -1222,4 +1226,7 @@ class HiveContextSQLTests(ReusedPySparkTestCase): if __name__ == "__main__": - unittest.main() + if xmlrunner: + unittest.main(testRunner=xmlrunner.XMLTestRunner(output='target/test-reports')) + else: + unittest.main() diff --git a/python/pyspark/streaming/tests.py b/python/pyspark/streaming/tests.py index 49634252fd4652d0fb7f55f579a3f8fd3ca35dd3..2c908daa8b214c537471174ac0746ba9d8813227 100644 --- a/python/pyspark/streaming/tests.py +++ b/python/pyspark/streaming/tests.py @@ -27,6 +27,11 @@ import struct import shutil from functools import reduce +try: + import xmlrunner +except ImportError: + xmlrunner = None + if sys.version_info[:2] <= (2, 6): try: import unittest2 as unittest @@ -1303,4 +1308,8 @@ if __name__ == "__main__": for testcase in testcases: sys.stderr.write("[Running %s]\n" % (testcase)) tests = unittest.TestLoader().loadTestsFromTestCase(testcase) - unittest.TextTestRunner(verbosity=3).run(tests) + if xmlrunner: + unittest.main(tests, verbosity=3, + testRunner=xmlrunner.XMLTestRunner(output='target/test-reports')) + else: + unittest.TextTestRunner(verbosity=3).run(tests) diff --git a/python/pyspark/tests.py b/python/pyspark/tests.py index 3c51809444401aa73b8f1fa84139821d97deac44..5bd94476597abcd5cb0f615c806470511f06c76a 100644 --- a/python/pyspark/tests.py +++ b/python/pyspark/tests.py @@ -35,6 +35,10 @@ import threading import hashlib from py4j.protocol import Py4JJavaError +try: + import xmlrunner +except ImportError: + xmlrunner = None if sys.version_info[:2] <= (2, 6): try: @@ -249,10 +253,12 @@ class SerializationTestCase(unittest.TestCase): # Regression test for SPARK-3415 def test_pickling_file_handles(self): - ser = CloudPickleSerializer() - out1 = sys.stderr - out2 = ser.loads(ser.dumps(out1)) - self.assertEqual(out1, out2) + # to be corrected with SPARK-11160 + if not xmlrunner: + ser = CloudPickleSerializer() + out1 = sys.stderr + out2 = ser.loads(ser.dumps(out1)) + self.assertEqual(out1, out2) def test_func_globals(self): @@ -2006,7 +2012,10 @@ if __name__ == "__main__": print("NOTE: Skipping SciPy tests as it does not seem to be installed") if not _have_numpy: print("NOTE: Skipping NumPy tests as it does not seem to be installed") - unittest.main() + if xmlrunner: + unittest.main(testRunner=xmlrunner.XMLTestRunner(output='target/test-reports')) + else: + unittest.main() if not _have_scipy: print("NOTE: SciPy tests were skipped as it does not seem to be installed") if not _have_numpy: