You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
1.1 KiB

  1. import unittest
  2. import platform
  3. import sys
  4. import argparse
  5. if platform.python_version() < '2.7':
  6. unittest = __import__('unittest2')
  7. else:
  8. import unittest
  9. try:
  10. import xmlrunner
  11. have_xml = True
  12. except ImportError:
  13. have_xml = False
  14. if __name__ == '__main__':
  15. parser = argparse.ArgumentParser(
  16. description='Test suit for KiCad Python functions')
  17. parser.add_argument('--xml', action="store", type=str,
  18. help='Output XML test results to the given directory')
  19. args = parser.parse_args()
  20. if args.xml and not have_xml:
  21. print("XML test reporting not available")
  22. print("Install the xmlrunner package.")
  23. sys.exit(2)
  24. testsuite = unittest.TestLoader().discover('testcases', pattern="*.py")
  25. if args.xml:
  26. # Dump XML results to the right directory
  27. runner = xmlrunner.XMLTestRunner(output=args.xml)
  28. else:
  29. # Use a normal text runner
  30. runner = unittest.TextTestRunner(verbosity=100)
  31. results = runner.run(testsuite)
  32. # Return an error code if any of the testsuite tests fail
  33. if not results.wasSuccessful():
  34. sys.exit(1)