Рекурсивный вызов для тестовых файлов RSpec во время выполнения - PullRequest
4 голосов
/ 04 мая 2011

У меня есть набор тестов RSpec, которые я хочу сгруппировать по следующей иерархии:

tests/
  featA/
     t1.rb
     t2.rb
  featB/
     t3.rb

но когда я бегу

$ rspec tests

Я получаю следующее:

rspec tests
No examples were matched. Perhaps {:unless=>#<Proc:0x00007f318919cc08@/usr/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:51>, :if=>#<Proc:0x00007f318919cdc0@/usr/lib/ruby/gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:50>} is excluding everything?

Finished in 0.00003 seconds
0 examples, 0 failures

Мне кажется, что я схожу с ума, но, похоже, не существует способа заставить RSpec рекурсивно использовать глобальные тестовые файлы? Эта функциональность существует?

EDIT:

У меня есть обходной путь, выполнив это:

$ rspec `find tests -name "*.rb"`

но я подозреваю, что не должен был это делать. Я прав?

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Вы разоблачили недосмотр с моей стороны!В rspec-1 вы могли бы сказать следующее:

spec test --pattern "**/*.rb"

Но опция --pattern отсутствует в rspec-2.Я только что добавил его ( в разработке ), и он будет включен в выпуск rspec-2.6.0.

1 голос
/ 04 мая 2011

Я обычно управляю запуском RSpec на моих спецификациях через rake.Соответствующая часть моего Rakefile выглядит примерно так:

require 'rspec/core/rake_task'

RSpec::Core::RakeTask.new(:spec) do |t|
  t.rspec_opts = ['--color', '-f progress', '-r ./spec/spec_helper.rb']
  t.pattern = 'spec/**/*_spec.rb'
  t.fail_on_error = false
end

Теперь rake spec запускает RSpec с соответствующими параметрами;вам нужно изменить t.pattern в соответствии со спецификациями, которые вы хотите запустить.

Обязательно посетите RSpec2 site для получения дополнительной информации.

...