Vì chạy thử nghiệm trực tiếp trên Heroku có vẻ không quá nhỏ, tôi đã sử dụng để chỉ định thử nghiệm cục bộ cho ứng dụng Heroku, sử dụng các cuộc gọi HTTParty thay cho các cuộc gọi Capybara thông thường.
Điều này có thể hoạt động tốt, ít nhất là cho các bài kiểm tra tích hợp.
Ví dụ, đây là phương pháp tôi sử dụng trong định nghĩa bước khi chạy thử nghiệm địa phương truyền thống chống lại các ứng dụng địa phương:
def my_http_request(httpmethod, path, body = '')
send httpmethod, path, body
end
và đây là phương pháp tôi sử dụng khi chạy thử nghiệm địa phương chống lại các ứng dụng Heroku:
def my_http_request(httpmethod, path, body = '')
options = body.blank? ? { :headers => {"Content-Length" => "0"} } : { :body => body }
@last_response = HTTParty.send httpmethod, 'https://lit-*****-6305.herokuapp.com' + path, options
end
Tôi tải một hoặc cái khác vào thế giới dưa chuột, dựa trên tùy chọn cụ thể được chuyển đến chính Cucumber và đặt trong cấu hình có liên quan (để tôi có thể gọi cucumber -p heroku
khi tôi muốn thử nghiệm với Heroku).
Tất nhiên, trong trường hợp thứ hai tôi cũng phải chăm sóc khởi tạo cơ sở dữ liệu Heroku trước mỗi kịch bản, gọi ví dụ một cái gì đó như thế này trong một 'trước khi' móc:
def start_my_heroku_tests
@@db = PGconn.open(:host => 'ec2-54-**-****-44.compute-1.amazonaws.com', :port => 5432, :dbname => 'd4d********rmi4k', :user => 'llcm*******jcyh', :password => '7FN_************gcxq')
@@db.exec "TRUNCATE sources"
@@db.exec "TRUNCATE posts"
end