{"categories":[{"label":"Python Modules","url":"https://skillfed.io/packages/category/software-development-libraries-python-modules/2"}],"enrichment":{"capability":"A pytest plugin that divides a test suite into balanced groups based on recorded test execution times, enabling parallel test execution with predictable runtime per group.","skillfed_tags":["ci-optimization","test-parallelization"],"use_cases":["Divide a test suite across multiple CI workers to parallelize builds while keeping wall-clock time balanced.","Identify and list the slowest tests in your suite using the slowest-tests CLI command for optimization.","Maintain test order stability in fragile suites that depend on execution sequence while still splitting for parallel CI.","Automatically handle new and removed tests without re-running --store-durations after every change.","Run notebook-based tests split across groups without breaking imports or cell dependencies."],"what_it_does":"pytest-split is a pytest plugin that organizes test execution into balanced parallel groups by analyzing how long each test takes to run. It stores test duration data in a .test_durations file, then uses that history to divide tests into sub-suites with roughly equal total execution time. This is useful for CI pipelines where you want to run tests in parallel across multiple workers without some workers finishing much earlier than others.\n\nThe plugin handles test suite changes gracefully: new tests get assigned an average duration estimate, and removed tests are simply skipped. It offers two splitting algorithms\u2014duration_based_chunks (maintains absolute test order) and least_duration (better balance, works with test randomization)\u2014and includes special handling for notebook-based tests via nbval integration. The main constraint is incompatibility with test randomization plugins when using the default algorithm, though a workaround exists via shared random seeds.","worth_installing":"Yes. Low install friction, active maintenance, no security vulnerabilities, and MIT licensing make this a safe choice. Install it if you run tests in parallel CI and want to avoid the unbalanced execution times that naive splitting produces. Skip it only if you use test randomization plugins and cannot coordinate a shared seed across workers."},"id":"pytest-split","links":{"html":"https://skillfed.io/packages/pytest-split","md":"https://skillfed.io/packages/pytest-split.md","pypi":"https://pypi.org/project/pytest-split/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-02-03","license_spdx":null,"license_treatment":"permissive","name":"pytest-split","python_support":"supports_current","summary":"Pytest plugin which splits the test suite to equally sized sub suites based on test execution time."},"popularity":{"monthly_downloads":20969797,"position":1020,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"0.11.0"}
