Open timreinkeaxios opened 2 months ago
The code in question for the SIGINT was written well before both retry
and fail-fast
and as such what you're likely describing is just nuances.
I can quickly replicate what you're observing. However when you say tests should not retry, are you therefore suggesting that a single Ctrl+C should kill everything immediately? Just so I'm clear @timreinkeaxios
yeah, this is definitely some edge case stuff and probably not super important
However when you say tests should not retry, are you therefore suggesting that a single Ctrl+C should kill everything immediately
Not exactly - test code/environment might want a chance to clean up resources (e.g. in our case releasing selenium grid browser sessions). IDK what the best way to provide that as an API is - the After hook still runs after the test is interrupted, which is what I would want to happen for resource cleanup. That's probably ideal vs force killing the process
👓 What did you see?
Ctrl+C sends INT which sets
wants_to_quit
. But, rather than exiting as soon as possible, cucumber will continue to retry.Further, when
--retry
is combined with--fail-fast
and interrupted, cucumber fails to exit entirely if a retry passes because fail fast setswants_to_quit = false
on successSending the second INT does exit immediately, but for dealing with cleanup/teardown in CI, it would be better to have a single INT work properly.
✅ What did you expect to see?
Tests should not retry after interrupt, and should always exit after current scenario.
📦 Which tool/library version are you using?
cucumber-9.2.0
🔬 How could we reproduce it?
Made a quick demo here: https://github.com/timreinkeaxios/cucumber-int-demo
📚 Any additional context?
No response