Okay I’m bored of this. I need to talk about it.
I love to use Ruby, RSpec, Cucumber and Rails to do test-driven development, but my tools for running tests are just infuriatingly dumb. Here’s what I want:
- When a test fails, it should be kept on a list until it has been seen to pass
- When more than one test fails:
- Show me the list, let me choose one
- Focus on that one until it passes, or I ask to go ‘back up’ to the list
- When it passes, go back up to the list and let me choose again
- When the list is empty, I get a free biscuit
- When a test case is run, a mapping should be stored to the source files that were covered as it ran so that:
- When a file changes, I can use that mapping to guess which test cases to run. Fuck all this naming convention stuff, it’s full of holes.
- At any time, I can pipe the git diff though the tool to figure out which test cases to run to cover the entire commit I’m about to make.
When I say test case, I personally mean:
- An RSpec example
- A Cucumber scenario
…but it should work for any other testing framework too.
I feel like having a tool like this that I trusted would make a huge difference to me. There are all these various scrappy little pieces of the puzzle around: guard plugins, autotest, cucover, cucumber’s rerun formatter. None of them seem to quite do it, for me. Am I missing something?
Or shall we make one?