tests/test_capture.py builds a DirectSniffer, whose lazy import reaches simtrace2_pysniff.device -> usb.core; the runner has no PyUSB, so two tests failed there while passing on a workstation that already had it. The job now installs the declared runtime dependency next to build.