{"id":17520465,"url":"https://github.com/amyreese/unittest-ft","last_synced_at":"2025-04-23T15:25:18.303Z","repository":{"id":257810296,"uuid":"867909281","full_name":"amyreese/unittest-ft","owner":"amyreese","description":"Run Python tests in parallel with free threading","archived":false,"fork":false,"pushed_at":"2025-04-17T01:18:37.000Z","size":49,"stargazers_count":9,"open_issues_count":6,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-17T11:30:01.061Z","etag":null,"topics":["free-threading","hacktoberfest","nogil","python","testing","unittest"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/amyreese.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-05T01:36:12.000Z","updated_at":"2025-04-16T23:34:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"6be24175-9401-474e-9d13-b231fba19932","html_url":"https://github.com/amyreese/unittest-ft","commit_stats":null,"previous_names":["amyreese/unittest-ft"],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amyreese%2Funittest-ft","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amyreese%2Funittest-ft/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amyreese%2Funittest-ft/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/amyreese%2Funittest-ft/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/amyreese","download_url":"https://codeload.github.com/amyreese/unittest-ft/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250458691,"owners_count":21433918,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["free-threading","hacktoberfest","nogil","python","testing","unittest"],"created_at":"2024-10-20T11:05:01.756Z","updated_at":"2025-04-23T15:25:18.296Z","avatar_url":"https://github.com/amyreese.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unittest-ft\n\nRun Python tests in parallel with free threading\n\n[![version](https://img.shields.io/pypi/v/unittest-ft.svg)](https://pypi.org/project/unittest-ft)\n[![license](https://img.shields.io/pypi/l/unittest-ft.svg)](https://github.com/amyreese/unittest-ft/blob/main/LICENSE)\n\nAlternative to the standard unittest runner that spawns a thread pool, and\nruns every test individually on separate threads, in parallel, to both run tests\nfaster and to assist with validating the thread safety of the tested system.\n\nunittest-ft also includes options to run \"stress tests\" which queues every test\nto be run ten times rather than just once, as well as randomizing the test order\nevery time to help catch unintended test order dependencies.\n\nThis is intended for use with Python 3.13 or newer with Free Threading enabled,\nbut is functionally compatible back to Python 3.8 for use in multi-version CI.\n\n\nInstall\n-------\n\n```shell-session\n$ pip install unittest-ft\n```\n\n\nUsage\n-----\n\nRun your test suite:\n\n```shell-session\n$ unittest-ft [\u003cmodule\u003e]\ns...xx.\n----------------------------------------------------------------------\nRan 7 tests in 463.69ms\n\nOK (skipped=1, expected failures=2)\n```\n\nIf you can spare the time/cores, run a randomized stress test:\n\n```shell-session\n$ unittest-ft --randomize --stress-test [\u003cmodule\u003e]\n.s...xs.xsxx.xx....xxx..xsxx.x.s.x...xs.xsxx....xx...s..ss............\n----------------------------------------------------------------------\nRan 70 tests in 1.240s (saved 9.988s)\n\nOK (skipped=10, expected failures=20)\n```\n\n\nLicense\n-------\n\nunittest-ft is copyright Amethyst Reese, and licensed under the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famyreese%2Funittest-ft","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famyreese%2Funittest-ft","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famyreese%2Funittest-ft/lists"}