2010-09-03 28 views
5

Tôi có 30 thông số kỹ thuật trong foo_controller_spec.rb của mình và khi tôi chạy toàn bộ tệp bằng cách sử dụng thông số, tôi nhận được 4 lỗi và 2 đang chờ xử lý. Khi tôi chạy 4 thông số thất bại riêng lẻ, 3 trong số chúng vẫn thất bại, nhưng một trong số chúng vượt qua. Lúc đầu, tôi nghĩ rằng đó là một vấn đề cơ sở dữ liệu, rằng dữ liệu không được làm sạch đúng cách giữa các lần chạy. Vì vậy, tôi cài đặt database_cleaner (http://github.com/bmabey/database_cleaner) và thêm mã này vào spec_helper tôi:các thông số riêng lẻ khi chạy một mình, nhưng không thành công khi tất cả các thông số kỹ thuật đang chạy

config.before(:suite) do 
    DatabaseCleaner.strategy = :truncation 
    DatabaseCleaner.clean_with(:truncation) 
end 

config.before(:each) do 
    DatabaseCleaner.start 
    Sham.reset 
    login 
end 

config.after(:each) do 
    DatabaseCleaner.clean 
end 

Bây giờ khi tôi chạy thông số kỹ thuật của tôi, tôi có thể thấy rằng các bảng được cắt ngắn giữa mỗi đặc tả nên tôi biết nó làm việc, nhưng spec vẫn thất bại khi chạy với tất cả các thông số kỹ thuật khác nhưng vượt qua khi chạy một mình. Tôi đang thiếu gì ở đây?

Trả lời

6

Tôi đã gặp sự cố tương tự và bị biến mất khỏi tâm trí của tôi!

Tôi theo dõi vấn đề như thế này (với Textmate): chọn tệp của bạn trong ngăn dự án (nhiều tệp) và sau đó chuyển đến "Gói> Rspec> Chạy ví dụ trong các tệp/thư mục đã chọn".

Bí quyết là tìm tệp nào gây nhiễu với người khác.

Đối với tôi, nó đã thay đổi I18n.locale trong một tệp khiến miền địa phương bị thay đổi cho tất cả các ví dụ khác!

tôi đã mất vài giờ đi hạt với điều này ...

+0

Sửa lỗi tốt! Tôi đã có cùng một vấn đề, và phát hiện ra rằng một "bao gồm Foo" bên ngoài bất kỳ khối mô tả đã làm cho những phương pháp có sẵn cho tất cả các thông số kỹ thuật. Điều này che dấu một thất bại khi chạy toàn bộ bộ. – r00k

+1

Làm thế nào tôi có thể kiểm tra điều này với Sublime Text một thiết bị đầu cuối của tôi? – Ricbermo

1

Chỉ trong trường hợp nó giúp những người khác: Tôi đã có một vấn đề tương tự và phát hiện ra tôi đã

  • Rspec.configures đi lạc đã được trọng cho tất cả các bài kiểm tra xuống dòng
  • WebMocks cho phép trong một thử nghiệm mà dường như thác để sau các bài kiểm tra cho đến khi tôi tôi bao gồm trong spec_helper để kết nối là theo mặc định

    R Spec.configure do | config | config.before (: suite) làm WebMock.allow_net_connect!

+0

Tôi cũng đang đối mặt với cùng một vấn đề @Ben, vui vì bạn đã đăng. –

0

Tôi đã có một vấn đề tương tự ngày hôm nay phải mất một chút thời gian để giải quyết.

này thất bại:

module SomeModule 
    describe SomeController do 
    it 'does something' 
    end 
end 

này qua:

describe SomeModule::SomeController do 
    it 'does something' 
end 

Vấn đề phải đối phó với Phạm vi.

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