2011-11-29 33 views
7

Tôi đã xem qua các tài liệu, nhưng mô tả về cách hoạt động của nhiều bộ lọc có vẻ hơi thiếu. Có ai có một lời giải thích hay nguồn giải thích tốt cho hành vi của nhiều bộ lọc? Thứ tự mà chúng được liệt kê có quan trọng không? Dưới đây là một ví dụ về mã mà có thể có hành vi khác so với những gì người ta có thể mong đợi ...Kết hợp các bộ lọc RSpec?

Rspec.configure do |c| 
    this_version = get_version_number.to_sym 
    c.filter_run :focus=> true 
    c.filter_run_excluding :limit_to=>true, this_version => false 
    c.filter_run :new_stuff=>true 
    c.run_all_when_everything_filtered 
end 

it "is focused, but not new", :focus 
it "is is new", :new_stuff 
it "is new and focused", :new_stuff, :focus 
it "is focused and new, but limited to a different version", :focus, :limit_to, :correct_version 

Thử nghiệm với điều này, nó cũng có vẻ như nhiều lập luận về "filter_run_excluding" dòng hành động đơn giản là nếu bạn đã viết các dòng nhiều lần. Có cách nào để làm cho nó thực sự kết hợp các kiểm tra bộ lọc để nó không bao gồm (hoặc chạy, tôi giả sử) chỉ các ví dụ có cả hai thẻ được liệt kê?

+0

Nếu I/chỉ/muốn chạy các mục có tiêu điểm, tốt hơn là nên sử dụng "filter_run_excluding: focus => false"? Tôi giả định filter_runs bổ sung sẽ thêm các mục bất kể "filter_run: focus => true", đúng không? – GlyphGryph

+0

Tôi có cùng một câu hỏi này. Bạn đã bao giờ tìm thấy một giải pháp? – Mike

+0

Điều này giống như câu trả lời: http://stackoverflow.com/questions/5628880/can-i-use-multiple-exclusion-filters-in-rspec –

Trả lời

3

Run nhiều bộ lọc từ dòng lệnh với điều này:

rspec spec --tag my_tag --tag my_second_tag -- tag ~my_third_tag 

Các ~ sẽ loại trừ bất kỳ spec với những thẻ, vì vậy nó thường hữu ích để làm một cái gì đó giống như

rspec spec --tag ~long_runing 
+0

Trong khi đúng, không trả lời câu hỏi. – Mike

Các vấn đề liên quan