I was a bit unhappy with the state of unit testing and wanted a better experience when hacking on https://github.com/adisbladis/pyproject.nix so I ended up forking https://github.com/nix-community/nix-eval-jobs and turned it into a test runner rather than a threaded evaluator.

My previous test suite was a Python one that first inspected the test attribute names and then fired off one Nix process per attribute. This instead uses the Nix C++ API and allows you to do the same per-attribute eval failure catching without the process overhead.

My test runs locally took 3.5s for 5 tests and are now down to 70ms.