async def METHOD_NAME(
    tests_dir: str,
    conn: Dict[str, Any],
    num_workers: int,
    version: str,
) -> None:
    runner = TestRunner()
    unittest.main(
        module=None,
        argv=["unittest", "discover", "-s", tests_dir],
        testRunner=runner,
        exit=False,
    )
    setup_scripts = tb.get_test_cases_setup(runner.cases)
    dump_cases = {
        db_name: case
        for case, db_name, _ss in setup_scripts
        if getattr(case, "STABLE_DUMP", False)
    }
    await tb.setup_test_cases(list(dump_cases.values()), conn, num_workers)
    dumps_dir = pathlib.Path(tests_dir) / "dumps"
    db_friendly_version = version.split("+", 1)[0]
    db_friendly_version = db_friendly_version.replace("-alpha.", "a")
    db_friendly_version = db_friendly_version.replace("-beta.", "b")
    db_friendly_version = db_friendly_version.replace("-rc.", "rc")
    db_friendly_version = db_friendly_version.replace("-", "_")
    db_friendly_version = db_friendly_version.replace(".", "_")
    for db_name in dump_cases:
        with tempfile.NamedTemporaryFile() as f:
            tb.CLITestCaseMixin.run_cli_on_connection(
                conn, "-d", db_name, "dump", f.name
            )
            db_dumps_dir = dumps_dir / db_name
            db_dumps_dir.mkdir(exist_ok=True)
            dump_p = (db_dumps_dir / db_friendly_version).with_suffix(".dump")
            shutil.copy(f.name, dump_p)
            print(f"Dumped {dump_p}")