# 3pio
A context-friendly test runner for Python projects. 3pio enhances your existing test workflow by generating structured, AI-optimized reports without changing how your tests run.
## Installation
```bash
pip install threepio-test-runner
```
## Usage
```bash
# Run pytest tests
3pio pytest
# Run specific test file
3pio pytest tests/test_utils.py
# Run with pytest options
3pio pytest -v -s tests/
# Run unittest tests
3pio python -m unittest
# Run with coverage
3pio pytest --cov=myproject tests/
```
## Why 3pio?
When working with AI coding assistants, test output often gets lost or truncated. 3pio solves this by:
- **Preserving all test output** - Never lose print statements or error traces
- **Structured reports** - Each test file gets its own organized log
- **AI-friendly format** - Reports optimized for LLM context windows
- **Zero config** - Works with your existing pytest/unittest setup
- **Non-intrusive** - Your tests run exactly as before, 3pio just captures better reports
## Supported Test Frameworks
- **pytest** - Full support for pytest and its plugins
- **unittest** - Python's built-in testing framework
- **nose2** - Works with nose2 test runner
- **Any Python test runner** - Captures output from any test command
## How It Works
3pio acts as a transparent wrapper around your test runner:
1. Runs your tests with a custom plugin to capture structured data
2. Preserves all console output and test results
3. Generates organized reports in `.3pio/runs/[timestamp]-[name]/`
4. Maintains full compatibility with your existing test configuration
## Report Structure
After running tests, find your reports in:
```
.3pio/runs/
└── 20240110-143022-clever-penguin/
├── test-run.md # Summary report
├── output.log # Complete console output
└── logs/
├── test_utils.py.log # Per-file test results
└── test_api.py.log # Organized by test file
```
## Repository
For source code, issues, and documentation: https://github.com/zk/3pio
## License
MIT
Raw data
{
"_id": null,
"home_page": "https://github.com/zk/3pio",
"name": "threepio-test-runner",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "test testing pytest ai adapter reporter",
"author": "Zachary Kim",
"author_email": "zachary@example.com",
"download_url": "https://files.pythonhosted.org/packages/94/d3/b77ace72576f5034c86c1fb16dbdedb9d298788b8f58820ab7d82b4d595f/threepio_test_runner-0.1.0.tar.gz",
"platform": null,
"description": "# 3pio\n\nA context-friendly test runner for Python projects. 3pio enhances your existing test workflow by generating structured, AI-optimized reports without changing how your tests run.\n\n## Installation\n\n```bash\npip install threepio-test-runner\n```\n\n## Usage\n\n```bash\n# Run pytest tests\n3pio pytest\n\n# Run specific test file\n3pio pytest tests/test_utils.py\n\n# Run with pytest options\n3pio pytest -v -s tests/\n\n# Run unittest tests\n3pio python -m unittest\n\n# Run with coverage\n3pio pytest --cov=myproject tests/\n```\n\n## Why 3pio?\n\nWhen working with AI coding assistants, test output often gets lost or truncated. 3pio solves this by:\n\n- **Preserving all test output** - Never lose print statements or error traces\n- **Structured reports** - Each test file gets its own organized log\n- **AI-friendly format** - Reports optimized for LLM context windows\n- **Zero config** - Works with your existing pytest/unittest setup\n- **Non-intrusive** - Your tests run exactly as before, 3pio just captures better reports\n\n## Supported Test Frameworks\n\n- **pytest** - Full support for pytest and its plugins\n- **unittest** - Python's built-in testing framework\n- **nose2** - Works with nose2 test runner\n- **Any Python test runner** - Captures output from any test command\n\n## How It Works\n\n3pio acts as a transparent wrapper around your test runner:\n\n1. Runs your tests with a custom plugin to capture structured data\n2. Preserves all console output and test results\n3. Generates organized reports in `.3pio/runs/[timestamp]-[name]/`\n4. Maintains full compatibility with your existing test configuration\n\n## Report Structure\n\nAfter running tests, find your reports in:\n```\n.3pio/runs/\n\u2514\u2500\u2500 20240110-143022-clever-penguin/\n \u251c\u2500\u2500 test-run.md # Summary report\n \u251c\u2500\u2500 output.log # Complete console output\n \u2514\u2500\u2500 logs/\n \u251c\u2500\u2500 test_utils.py.log # Per-file test results\n \u2514\u2500\u2500 test_api.py.log # Organized by test file\n```\n\n## Repository\n\nFor source code, issues, and documentation: https://github.com/zk/3pio\n\n## License\n\nMIT\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Context-optimized test runner for coding agents",
"version": "0.1.0",
"project_urls": {
"Bug Reports": "https://github.com/zk/3pio/issues",
"Homepage": "https://github.com/zk/3pio",
"Source": "https://github.com/zk/3pio"
},
"split_keywords": [
"test",
"testing",
"pytest",
"ai",
"adapter",
"reporter"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "63b9bc9d6af7aa9e47eef23caccc8a6a2f59aba34dca0e08463655c23b6d9985",
"md5": "d9bfb5199f1f4e8af7c66a89b832cbf5",
"sha256": "0135125a4a5bba32fc22df22d391cb1321aee657313cb0ce2a1f80287d73ccfd"
},
"downloads": -1,
"filename": "threepio_test_runner-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d9bfb5199f1f4e8af7c66a89b832cbf5",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 10424934,
"upload_time": "2025-09-11T04:46:19",
"upload_time_iso_8601": "2025-09-11T04:46:19.856178Z",
"url": "https://files.pythonhosted.org/packages/63/b9/bc9d6af7aa9e47eef23caccc8a6a2f59aba34dca0e08463655c23b6d9985/threepio_test_runner-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "94d3b77ace72576f5034c86c1fb16dbdedb9d298788b8f58820ab7d82b4d595f",
"md5": "cf445171f7a9c48b9e5f6d07fc9a6794",
"sha256": "b82f97428020598d9d94ee3a836d4d988f2524e78a1214790e770d5baa969ea6"
},
"downloads": -1,
"filename": "threepio_test_runner-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "cf445171f7a9c48b9e5f6d07fc9a6794",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 8627127,
"upload_time": "2025-09-11T04:46:22",
"upload_time_iso_8601": "2025-09-11T04:46:22.043047Z",
"url": "https://files.pythonhosted.org/packages/94/d3/b77ace72576f5034c86c1fb16dbdedb9d298788b8f58820ab7d82b4d595f/threepio_test_runner-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-09-11 04:46:22",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "zk",
"github_project": "3pio",
"github_not_found": true,
"lcname": "threepio-test-runner"
}