RSpec

2015-04-15 26 views
5

içinde bir spec dizini için kancalar önce ve sonra RSpec test takımımızda oldukça fazla test var. Ben çalıştırılır transaction/ klasördeki Spec tüm dosyaları önce, bir test veritabanı dökümü geri yükleyebilir ve tüm testler bittikten sonra bunu boşaltmak istediğiRSpec

spec/ 
    truncation/ 
    example1_spec.rb 
    example2_spec.rb 
    ... 
    transaction/ 
    example1_spec.rb 
    example2_spec.rb 
    ... 

- dizin yapısı şöyle görünür.

Bunu yapmanın bir yolu var mı?

before(:suite) ve after(:suite) kancaları vardır, ancak bunlar bireysel özellik dosyaları için geçerlidir.

RSpec'de dizinler için kancalardan önce ve sonra sağlamanın bir yolu var mı?

cevap

7

RSpec 3+ kullanıyor musunuz?

Dosya yolu eşleştiricilerine göre özel meta verileri eklemek için #define_derived_metadata kullanabilirsiniz.

RSpec.configure do |config| 
    config.define_derived_metadata(file_path: %r{spec/truncation}) do |metadata| 
    metadata[:truncation] = true 
    end 

    config.before(:all, :truncation) do 
    # truncate that bad boy 
    end 
end 

Bu

örneğin belirli dizinlere içinde gözlük özel davranışı eklemek için rspec-rails kullanılan same method olduğunu spec/controllers.

Docs