{"categories":[{"label":"Testing","url":"https://skillfed.io/packages/category/software-development-testing/2"}],"enrichment":{"capability":"Subunit is a streaming protocol library for test results that aggregates, serializes, and multiplexes test execution across languages and machines into a unified stream.","skillfed_tags":["test-infrastructure","distributed-testing","protocol-implementation"],"use_cases":["Aggregate test results from multiple test runners or languages into a single stream for centralized reporting.","Run isolated test suites in separate processes and combine their results without interference using subunit's multiplexing.","Archive and replay test runs by recording subunit streams and replaying them later for analysis or debugging.","Distribute test execution across multiple machines and collect results in real time via a subunit stream.","Convert test results between formats (e.g., TAP to subunit, subunit to JUnit XML) using the protocol's filters."],"what_it_does":"Subunit is a Python implementation of a streaming protocol for test results designed to handle distributed, parallel, and cross-language test execution. It models xUnit-style test outcomes (start, pass/fail, finish) and extends them with test enumeration, tagging, file attachments, and timestamps. The protocol comes in two versions: Version 1 (human-readable but with buffering and corruption issues in parallel scenarios) and Version 2 (binary, packet-based, designed for multiplexing without excessive buffering and with recovery mechanisms for corrupted streams).\n\nThe package provides Python bindings to emit and consume subunit streams, making it useful for aggregating test results from separate processes, languages, or machines into a single unified stream. It includes filters and tools to convert between subunit and other formats (CSV, JUnit XML, TAP), and integrates with Python's unittest framework via the subunit.run module. Dependencies on iso8601, PyYAML, and testtools keep the core lightweight while supporting timestamp parsing, configuration, and test result modeling.","worth_installing":"Yes. Subunit is actively maintained, has no known vulnerabilities, installs with low friction, and is licensed permissively. Install it if you need to aggregate, multiplex, or serialize test results across distributed or parallel test runs, or if you're integrating tests from multiple languages or frameworks. Skip it if your testing stays within a single process or framework without cross-language aggregation needs."},"id":"python-subunit","links":{"html":"https://skillfed.io/packages/python-subunit","md":"https://skillfed.io/packages/python-subunit.md","pypi":"https://pypi.org/project/python-subunit/"},"maintenance":{"status":"active"},"meta":{"latest_release":"2026-05-04","license_spdx":null,"license_treatment":"permissive","name":"python-subunit","python_support":"supports_current","summary":"Python implementation of subunit test streaming protocol"},"popularity":{"monthly_downloads":1282582,"position":4115,"tier":"top_5000"},"security":{"n_vulnerabilities":0},"version":"1.4.6"}
