tôi có một loạt các nhiệm vụ cào trong một Rakefile mà tôi muốn thử nghiệm như là một phần của thông số kỹ thuật của tôi vv Mỗi nhiệm vụ được xác định theo hình thức:Tôi có thể ghi đè tác vụ: môi trường trong test_helper.rb để kiểm tra tác vụ cào không?
task :do_somthing => :environment do
# Do something with the database here
end
Trường hợp: Nhiệm vụ môi trường thiết lập một ActiveRecord/Kết nối cơ sở dữ liệu DataMapper và các lớp. Tôi không sử dụng điều này như là một phần của Rails nhưng tôi có một loạt các bài kiểm tra mà tôi muốn chạy như một phần của BDD.
Đoạn mã này minh họa cách tôi đang cố gắng kiểm tra tác vụ cào.
def setup
@rake = Rake::Application.new
Rake.application = @rake
load File.dirname(__FILE__) + '/../../tasks/do_something.rake'
end
should "import data" do
@rake["do_something"].invoke
assert something_in_the_database
end
Vì vậy, yêu cầu của tôi để được giúp đỡ - là nó có thể quá mức đi xe: nhiệm vụ môi trường trong tập tin test_helper.rb của tôi vì vậy tôi thử nghiệm cào của tôi tương tác với cơ sở dữ liệu thử nghiệm của tôi, chứ không phải là sản xuất? Tôi đã thử xác định lại tác vụ trong tệp trợ giúp, nhưng điều này không hoạt động.
Bất kỳ trợ giúp nào cho giải pháp sẽ tuyệt vời, vì tôi đã bị mắc kẹt về vấn đề này trong tuần qua.
Cảm ơn câu trả lời của Mike. Tôi đã làm một số rối tung hơn xung quanh với Rake trong thời gian có nghĩa là, và tôi nghĩ rằng hai phương pháp trong test_helper.rb có thể là một số cách để hướng tới một giải pháp. def rake_up Rake.application = Rake :: Application.new Rake :: Task.define_task: môi trường Rake.application cuối def rake_down Rake.application = nil cuối –
Các liên kết với bài đăng blog xuất hiện chết. Nơi duy nhất tôi có thể tìm thấy nội dung là ở đây: [Những gì để đưa vào các nhiệm vụ Rake] (http://www.artima.com/forums//threaded.jsp?forum=123&thread=251328) – ThomasW