So now, when I write an acceptance test I use describe.acceptance instead of the built-in describe, and it knows to run only when appropriate based on how I run the tests. For example:
make test — runs all the tests
SKIP_INTEGRATION_TESTS=1 make test — skips integration tests
I’m not bothered by the command length because I usually have it under a build task. For example, my default make task is to run all the unit tests:default:
@SKIP_INTEGRATION_TESTS=1 SKIP_ACCEPTANCE_TESTS=1 make test
so when I say “make” it runs this command. I guess something similar can easily be done in grunt, gulp, rake, ant, etc.
I hope this helps. As Mark Twain said, sorry for a that long explanation, I didn’t have time to write a shorter one. :)
¹ I used the negative “skip” because I wanted all the tests to run by default, and only exclude some of them when I wanted and I knew what I’m doing, just to be safe. ;-)