2016-02-18 4 views
1

Existe-t-il un moyen d'exécuter des macros Rspec sous condition?Rspec - Comment créer des macros avec des tags?

Par exemple possibilité de filtrer les macros en utilisant

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

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

Note: Ce est d'appeler un groupe de tests dynamiquement. Donc, une solution n'est pas ce que je cherche.

Répondre

0

Vous pouvez exécuter les spécifications dans le même processus, et vous pouvez aussi faire des choses comme capture the output.

Mais un exemple simple qui pourrait fonctionner pour vous est simplement de créer un script Ruby:

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 

Ensuite, dans votre script rspec qui va modifier le réglage:

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

Ce sera sous condition exécutez la spécification dans foo.rb.