We definitely should be truncating the hits table somehow. Because you're using `before :all` in this context (even though there is only one spec there), `testing_before_all` should be sufficient in this case. `truncate_everything` would clean before each spec, so would break any tests relying on setup from a `before :all` block, as I understand it.

There is a [`pre_count` option to `truncation`](https://github.com/bmabey/database_cleaner/blob/master/README.markdown#additional-activerecord-options-for-truncation) which only bothers to truncate tables which have actually been used, and also an [`only` option](https://github.com/bmabey/database_cleaner/blob/master/README.markdown#how-to-use) to specify tables to truncate. I've just tried using those in an attempt to make this situation slightly clearer, with little success:

- I can't find a way to specify that the `hits` and `hits_staging` tables (which are myISAM) should use the truncation strategy, while continuing to use transactions for all other tables; it seems to only be possible to have one default strategy.

- I tried using the `pre_count` option for Cucumber (which always uses truncation) to speed up the features, but it actually made them take a couple of seconds longer.

I'm abandoning this particular rabbit hole for now.