2016-02-18 14 views
1

Есть ли способ запустить макросы Rspec условно?Rspec - Как создать макросы с тегами?

Например, возможность фильтрации макросов с помощью

RSpec.configure do |c| 
    c.filter_run_excluding :broken => true 
end 

## This should get skipped 
it_should_validate_with_macro :some_param, :broken => true 

Примечание: Это вызвать группу тестов динамически. Итак, pending подходящего решения я не ищу.

ответ

0

Вы можете запустить функции в том же процессе, и вы также можете сделать что-то вроде capture the output.

Но простой пример, который может работать для вас просто создать рубиновый скрипт:

require 'rspec/core' 

RSpec.configuration.add_setting(:some_setting) 
RSpec.configuration.some_setting = false 
RSpec::Core::Runner.run(['spec/models/bar.rb']) 
RSpec.clear_examples 
if RSpec.configuration.some_setting 
    RSpec::Core::Runner.run(['spec/models/foo.rb']) 
end 

Затем в вашем Rspec скрипт, который будет изменять настройки:

RSpec.describe 'bar' do 
    it 'bar' do 
    RSpec.configuration.some_setting = true 
    end 
end 

Это будет условно введите спецификацию в foo.rb.