kicad/qa/test.py

51 lines
1.3 KiB
Python

import unittest
import platform
import sys
import argparse
import locale
if platform.python_version() < '2.7':
unittest = __import__('unittest2')
else:
import unittest
try:
import xmlrunner
have_xml = True
except ImportError:
have_xml = False
if __name__ == '__main__':
parser = argparse.ArgumentParser(
description='Test suit for KiCad Python functions')
parser.add_argument('--xml', action="store", type=str,
help='Output XML test results to the given directory')
args = parser.parse_args()
if args.xml and not have_xml:
print("XML test reporting not available")
print("Install the xmlrunner package.")
sys.exit(2)
# Useful in some non English installs (using a comma as load number separator) to avoid
# wxWidgets alerts when running the test code
locale.setlocale(locale.LC_ALL, 'C')
testsuite = unittest.TestLoader().discover('testcases', pattern="*.py")
if args.xml:
# Dump XML results to the right directory
runner = xmlrunner.XMLTestRunner(output=args.xml)
else:
# Use a normal text runner
runner = unittest.TextTestRunner(verbosity=100)
results = runner.run(testsuite)
# Return an error code if any of the testsuite tests fail
if not results.wasSuccessful():
sys.exit(1)