especificações individuais passam quando executadas sozinhas, mas falham quando todas as especificações são executadas

Tenho 30 especificações no meu foo_controller_spec.rb e quando executo o arquivo inteiro usando a especificação, recebo 4 falhas e 2 pendentes. Quando executo as 4 especificações com falha individualmente, 3 delas ainda falham, mas uma delas passa. No começo, pensei que era um problema de banco de dados, que os dados não estavam sendo limpos corretamente entre as execuções. Então eu instalei o database_cleaner (http://github.com/bmabey/database_cleaner) e adicionou este código ao meu spec_helper:

config.before(:suite) do
  DatabaseCleaner.strategy = :truncation
  DatabaseCleaner.clean_with(:truncation)
end

config.before(:each) do
  DatabaseCleaner.start
  Sham.reset
  login
end

config.after(:each) do
  DatabaseCleaner.clean
end

Agora, quando executo minhas especificações, posso ver que as tabelas estão truncadas entre cada especificação, então sei que está funcionando, mas as especificações ainda falham quando executadas com todas as outras especificações, mas passam quando executadas sozinhas. O que estou perdendo aqui?