I’d say when you run a big suite in CI and it takes an hour and your first assertion of many in a test fails, you don’t know if the others also fail or not. You fix it only to wait another hour for the tests to fail again.
Even CUnit has specific test invocations via eg. an interactive ncurses session, so any fancy pancy Jenkins monster surely can retest failing tests seperately?
Agreed, which is why I suggest designing each test for a single target state.
That target may then legitimately benefit from multiple assertions, and you have the same problem.
I use #ifdef:s to enable "intermediate state" and implementation asserts usually to mark them as development tests.