2009-05-24 37 views
6

Tôi đang cố gắng sử dụng rspec trong một dự án đường ray mà tôi vừa mới nâng cấp lên đường ray 2.3.2. Tôi đã cài đặt rspec 1.2.6 và rspec-rails 1.2.6 làm plugin trong ứng dụng.đặc tính cào không sử dụng môi trường đường ray

Vấn đề của tôi là các thông số kỹ thuật không có quyền truy cập vào các lớp ứng dụng của tôi hoặc bất kỳ thư viện chuẩn nào của thư viện.

Trước tiên tôi phải chỉ ra lớp mô hình Tôi muốn thử nghiệm bằng cách sử dụng đường dẫn đầy đủ từ RAILS_ROOT nhưng bây giờ vì nó nạp lớp tôi nhận được sau

 
/app/models/person.rb:1: uninitialized constant ActiveRecord (NameError) 
     from ./spec/models/person_spec.rb:1:in `require' 
    from ./spec/models/person_spec.rb:1 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:15:in `load_files' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `each' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb:14:in `load_files' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/options.rb:99:in `run_examples' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/lib/spec/runner/command_line.rb:9:in `run' 
    from /Users/law/Projects/roster/vendor/plugins/rspec/bin/spec:4 
rake aborted! 

Tôi tung rspec bằng cách gọi cào spec từ gốc của ứng dụng.

Bất kỳ ý tưởng nào về những gì có thể bị thiếu trong trường hợp này?

+0

Tôi đã phát hiện thêm yêu cầu 'spec/spec_helper.rb' dường như giải quyết vấn đề m, nhưng chắc chắn đây là cái gì đó có nghĩa là để được bao gồm theo mặc định, không phải trong mỗi tập tin? – lyallward

Trả lời

6

bạn cần thực sự bao gồm các spec_helper.rb trong mỗi file spec bạn viết ....

Bạn có thể chạy thông số kỹ thuật cá nhân mà cách:

$ spec specs/models/person_spec.rb 

thay vì lúc nào cũng chạy bộ đặc tả toàn bộ

+0

Đó là giải pháp tôi đã làm việc. Nó cảm thấy dư thừa vì vậy tôi đoán tôi đã hy vọng có một giải pháp tốt hơn trên mạng. – lyallward

0

Tôi không sử dụng thông số kỹ thuật, vì vậy điều này có thể không giải quyết được vấn đề của bạn, nhưng nếu bạn đang viết tác vụ cào của riêng mình và cần môi trường đường ray, bạn phải yêu cầu.

task(:task_name => :environment) do 
    # Task Implementation Here 
end 
+0

Chúc mừng sự giúp đỡ. Tôi không lăn nhiệm vụ cào của riêng tôi, nhưng đã có một cái nhìn và nó đã chạy một cấu trúc phụ thuộc khá phức tạp cho nhiệm vụ được đề cập. Vì vậy, tôi không chắc chắn tôi muốn gây rối với nó. – lyallward

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