diff --git a/mypy/util.py b/mypy/util.py index 3400cbdcfddd..1d4da439c9eb 100644 --- a/mypy/util.py +++ b/mypy/util.py @@ -150,6 +150,12 @@ def write_junit_xml(dt: float, serious: bool, messages: List[str], path: str) -> xml = FAIL_TEMPLATE.format(text=escape('\n'.join(messages)), time=dt) else: xml = ERROR_TEMPLATE.format(text=escape('\n'.join(messages)), time=dt) + + # checks for a directory structure in path and creates folders if needed + xml_dirs = os.path.dirname(os.path.abspath(path)) + if not os.path.isdir(xml_dirs): + os.makedirs(xml_dirs) + with open(path, 'wb') as f: f.write(xml.encode('utf-8'))