def METHOD_NAME(self_test_exe: str, extra_args: List[str] = None):
    cmd = make_base_commandline(self_test_exe) + ['--list-tests']
    if extra_args:
        cmd.extend(extra_args)
    try:
        ret = subprocess.run(cmd,
                             stdout = subprocess.PIPE,
                             stderr = subprocess.PIPE,
                             timeout = 10,
                             check = True,
                             universal_newlines = True)
    except subprocess.CalledProcessError as ex:
        print('Could not list tests:\n{}'.format(ex.stderr))
    if ret.stderr:
        raise RuntimeError("Unexpected error output:\n" + ret.stderr)
    root = ET.fromstring(ret.stdout)
    result = [elem.text for elem in root.findall('./TestCase/Name')]
    if len(result) < 2:
        raise RuntimeError("Unexpectedly few tests listed (got {})".format(
            len(result)))
    return result