2010-10-16 36 views
25

Tôi đang cố gắng chạy thử nghiệm riêng lẻ thông qua thử nghiệm/đơn vị/mytest.rb ruby, nhưng tôi luôn nhận được lỗi "không có tệp như vậy để tải - test_helper". Google đã đưa ra một vài gợi ý, nhưng không ai trong số họ làm việc cho tôi. Tôi đang chạy Rails 3.0, Ruby 1.9.2 (thông qua RVM) trên Ubuntu 10.10Kiểm tra đường ray không thể tìm thấy test_helper

Đây là những gì tôi đã cố gắng cho đến nay - bất cứ đề nghị thực sự đánh giá cao

  • Changed "require test_helper" thành "yêu cầu File.dirname (FILE) + "/../test_helper" "trong bài kiểm tra/đơn vị/mytest_test.rb. Nó mang lại "không có tệp như vậy để tải - thử nghiệm/đơn vị /../ test_helper"
  • Đã thử chạy thử rvm/đơn vị/mytest_test.rb Tương tự như trên
  • Đã thử chạy ruby ​​-I test/unit/mytest_test. rb. Không có thông báo cho thiết bị đầu cuối. Sau khoảng 5 phút chờ đợi điều gì đó xảy ra, ctrl + c'd ra khỏi nó

Bất kỳ đề xuất nào được đánh giá cao - Tôi đang bối rối.

Trả lời

23

ruby ​​1.9.2 đã xóa ".", Thư mục hiện tại, từ đường dẫn tải. Tôi phải làm điều này để làm cho nó làm việc:

require 'test_helper' 

và gọi nó là thích:

ruby -I. unit/person_test.rb 
+2

Ach! Tuyệt vời - cảm ơn rất nhiều. – PlankTon

+4

ruby ​​-Phí kiểm tra/đơn vị/person_test.rb nhất. Tham khảo: http://guides.rubyonrails.org/testing.html#running-tests –

+0

Sự khác biệt duy nhất là thư mục hiện tại bạn đang ở đâu ... – DGM

12

Tôi đã thêm dòng sau vào phía trên cùng của file thử nghiệm của tôi.

require File.expand_path("../../test_helper", __FILE__) 

này phục hồi hành vi trước và cho phép các cuộc gọi đến chỉ đơn giản là:

ruby test/unit/person_test.rb 
6

Có lẽ bạn nên chạy các trường hợp thử nghiệm của bạn theo cách này:

$ rake test 

Không cần đến thay đổi câu lệnh "require" từ mã được tạo nếu bạn sử dụng rake.

Tested với Ruby 1.9.3 và Rails 3.2.8

3

Rails 1.9 không còn bao gồm thư mục hiện tại trong LOAD_PATH, gây ra vấn đề này. Bạn có một vài lựa chọn.

  1. gọi các thử nghiệm với tùy chọn -I từ dir ứng dụng:

    ruby ​​-Tôi thử nghiệm test/functional/test_foo.rb

và sử dụng một yêu cầu không có đường dẫn:

require "test_helper.rb" 
  1. sử dụng một đường dẫn đầy đủ trong yêu cầu. Hoặc

    require 'tên đường dẫn'

    đòi hỏi Pathname.new (FILE) .realpath.dirname.join ('/ ../test_helper.rb ')

hoặc

require (File.dirname(File.realdirpath(__FILE__)) + '/../test_helper.rb') 
2

Nếu bạn đang tạo một viên ngọc hoặc động cơ, chạy rake test trong thư mục ứng dụng thử nghiệm giả sẽ gây ra lỗi này. Chạy rake test trong thư mục gốc của đá quý sẽ tránh điều này.

11

tôi đang chiến đấu điều này bản thân mình ngày hôm nay và tôi không thích đòi hỏi lớn với toàn bộ đường dẫn đến tập tin và các công cụ ...

Trong trường hợp của tôi đó là lỗi của Rakefile ..

vì vậy bây giờ nó trông giống như này:

require "bundler/gem_tasks" 
require "rake/testtask" 

Rake::TestTask.new do |t| 
    t.libs << "lib" 
    t.libs << "test" # here is the test_helper 
    t.pattern = "test/**/*_test.rb" 
end 

task default: :test 

tôi biết tuổi của mình và đã đánh dấu vị trả lời được chấp nhận, nhưng có lẽ điều này cũng sẽ giúp một ai đó :) có một ngày tốt đẹp

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