pytest-receptorο
A pytest reporter for coding agents.
When pytest is driven by an agent rather than read by a person, its output is
consumed by something that pays for every token and cannot scroll back.
pytest-receptor renders the same run for that consumer: it states what
happened, groups repeated failures by root cause, and gives the exact command to
re-run them.
Note
The 1.x compatibility contract protects the reliability floor, documented
outcome meanings, options, and pytest-receptor.events@1. See
Compatibility and migration.
Where to goο
If you want to⦠|
Read |
|---|---|
Install it |
|
Run it and read its output |
|
Look up an option, an outcome label, or an output field |
|
Understand what it does to pytest, and why |
|
Know which output channel is authoritative |
|
Produce or read normalized JSONL evidence |
|
Understand the 1.x promises or migrate from 0.7 |
|
Know what it does not do |
|
See measured token costs, and how they were measured |
In thirty secondsο
$ pytest --receptor=llm
FAIL exit=1 | 38 errors, 90 passed | 12.40s | 1 root cause
[1] TypeError | 38 tests | setup
conftest.py:31
TypeError: 'NoneType' object is not subscriptable
tests:
tests/test_merge.py::test_merge[0]
tests/test_merge.py::test_merge[1]
tests/test_merge.py::test_merge[2]
+35 more
rerun: pytest tests/test_merge.py -q
One broken fixture, thirty-eight failing tests, one root cause. Plain pytest
spends 3,308 tokens on that run; this is 106.
Installing the plugin changes nothing until you ask it to: the default profile
registers nothing at all, so plain pytest behaves exactly as it does without
it installed.