Я задал этот вопрос в списке рассылки rspec, но не получил ответа, поэтому решил попробовать здесь.
Использование rspec 1.3.2 и rspec-rails 1.3.4 с rails 2.3.11 на ruby 1.9.2-p180, когда я
$ rake spec:models
они все проходят.Когда я
$ rake spec:controllers
они все проходят.Когда я
$ rake spec:views
они все проходят.Но когда я
$ rake spec
получаю
<path to gem>/activesupport-2.3.11/lib/active_support/dependencies.rb:177: stack level too deep (SystemStackError)
Я возился с файлом рейка, и когда я меняю
t.spec_files = FileList['spec/**/*_spec.rb']
в задании по умолчанию для попадания только в одну из подкаталогов, например,
t.spec_files = FileList['spec/models/**/*_spec.rb']
, тогда рейк-спецификация работает.Я сделал это для моделей, контроллеров и представлений, и Rake Spec прекрасно работает для каждого.Но в том числе все они, такие как
t.spec_files = FileList['spec/models/**/*_spec.rb', 'spec/controllers/**/*_spec.rb', 'spec/views/**/*_spec.rb']
, работают , а не (такая же ошибка, как указано выше).По иронии судьбы, включение только моделей и представлений работает:
t.spec_files = FileList['spec/models/**/*_spec.rb', 'spec/views/**/*_spec.rb']
, но кажется, что любая комбинация, включая контроллеры, потерпит неудачу.Это странно для меня, так как Rake Spec: контроллеры работает.Если это не связано с количеством файлов и / или примеров.Количество файлов и примеров для каждого типа спецификации:
models: 25 files, 391 examples
controllers: 26 files, 973 examples
views: 52 files, 508 examples
Использование только rake spec работало на Ruby 1.8.7 (-p302) и Ruby 1.9.1 (-p243).
У кого-нибудь есть какие-либо идеи?Я могу запустить каждую группу индивидуально (и даже создать псевдоним, чтобы сделать все сразу), но тогда rspec должен запустить приложение 3 раза.Кроме того, это не решает, почему это не работает на Ruby 1.9.2.