I would rename the instances of WithSetupAndCleanup to just WithCleanup for simplicity. Having cleanup will also imply that there's something to be cleaned up.