mirror of https://github.com/ARMmbed/mbed-os.git
Adding JUnit build reporting option to test.py
parent
ec2e4a1d6a
commit
bc86aa92a0
|
@ -30,6 +30,7 @@ from tools.options import get_default_options_parser
|
||||||
from tools.build_api import build_project, build_library
|
from tools.build_api import build_project, build_library
|
||||||
from tools.targets import TARGET_MAP
|
from tools.targets import TARGET_MAP
|
||||||
from tools.utils import mkdir
|
from tools.utils import mkdir
|
||||||
|
from tools.test_exporters import ReportExporter, ResultExporterType
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
try:
|
try:
|
||||||
|
@ -66,6 +67,9 @@ if __name__ == '__main__':
|
||||||
parser.add_option("--test-spec", dest="test_spec",
|
parser.add_option("--test-spec", dest="test_spec",
|
||||||
default=None, help="Destination path for a test spec file that can be used by the Greentea automated test tool")
|
default=None, help="Destination path for a test spec file that can be used by the Greentea automated test tool")
|
||||||
|
|
||||||
|
parser.add_option("--build-report-junit", dest="build_report_junit",
|
||||||
|
default=None, help="Destination path for a build report in the JUnit xml format")
|
||||||
|
|
||||||
parser.add_option("-v", "--verbose",
|
parser.add_option("-v", "--verbose",
|
||||||
action="store_true",
|
action="store_true",
|
||||||
dest="verbose",
|
dest="verbose",
|
||||||
|
@ -118,16 +122,25 @@ if __name__ == '__main__':
|
||||||
|
|
||||||
target = TARGET_MAP[options.mcu]
|
target = TARGET_MAP[options.mcu]
|
||||||
|
|
||||||
|
build_report = {}
|
||||||
|
build_properties = {}
|
||||||
|
|
||||||
|
# Build sources
|
||||||
lib_build_res = build_library(base_source_paths, options.build_dir, target, options.tool,
|
lib_build_res = build_library(base_source_paths, options.build_dir, target, options.tool,
|
||||||
options=options.options,
|
options=options.options,
|
||||||
jobs=options.jobs,
|
jobs=options.jobs,
|
||||||
clean=options.clean,
|
clean=options.clean,
|
||||||
|
report=build_report,
|
||||||
|
properties=build_properties,
|
||||||
|
name="mbed-os",
|
||||||
archive=False)
|
archive=False)
|
||||||
|
|
||||||
# Build all the tests
|
# Build all the tests
|
||||||
test_build = build_tests(tests, [options.build_dir], options.build_dir, target, options.tool,
|
test_build = build_tests(tests, [options.build_dir], options.build_dir, target, options.tool,
|
||||||
options=options.options,
|
options=options.options,
|
||||||
clean=options.clean,
|
clean=options.clean,
|
||||||
|
report=build_report,
|
||||||
|
properties=build_properties,
|
||||||
jobs=options.jobs)
|
jobs=options.jobs)
|
||||||
|
|
||||||
# If a path to a test spec is provided, write it to a file
|
# If a path to a test spec is provided, write it to a file
|
||||||
|
@ -147,6 +160,10 @@ if __name__ == '__main__':
|
||||||
print "[ERROR] Error writing test spec to file"
|
print "[ERROR] Error writing test spec to file"
|
||||||
print e
|
print e
|
||||||
|
|
||||||
|
# If a path to a JUnit build report spec is provided, write it to a file
|
||||||
|
if options.build_report_junit:
|
||||||
|
report_exporter = ReportExporter(ResultExporterType.JUNIT)
|
||||||
|
report_exporter.report_to_file(build_report, options.build_report_junit, test_suite_properties=build_properties)
|
||||||
sys.exit()
|
sys.exit()
|
||||||
|
|
||||||
except KeyboardInterrupt, e:
|
except KeyboardInterrupt, e:
|
||||||
|
|
|
@ -17,7 +17,8 @@ limitations under the License.
|
||||||
Author: Przemyslaw Wirkus <Przemyslaw.wirkus@arm.com>
|
Author: Przemyslaw Wirkus <Przemyslaw.wirkus@arm.com>
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from tools.utils import construct_enum
|
from tools.utils import construct_enum, mkdir
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
ResultExporterType = construct_enum(HTML='Html_Exporter',
|
ResultExporterType = construct_enum(HTML='Html_Exporter',
|
||||||
|
@ -97,6 +98,9 @@ class ReportExporter():
|
||||||
|
|
||||||
def write_to_file(self, report, file_name):
|
def write_to_file(self, report, file_name):
|
||||||
if report is not None:
|
if report is not None:
|
||||||
|
dirname = os.path.dirname(file_name)
|
||||||
|
if dirname:
|
||||||
|
mkdir(dirname)
|
||||||
with open(file_name, 'w') as f:
|
with open(file_name, 'w') as f:
|
||||||
f.write(report)
|
f.write(report)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue