Da Tests direkt auf Heroku nicht so trivial zu sein scheinen, habe ich den lokalen Test auf die Heroku-App umgeleitet, indem ich HTTParty-Anrufe anstelle von normalen Capybara-Anrufen verwendet habe.
Das kann gut funktionieren, zumindest für Integrationstests.
Zum Beispiel ist dies die Methode I in Schritt Definitionen verwenden, wenn herkömmliche lokale Tests gegen die lokale Anwendung ausgeführt wird:
def my_http_request(httpmethod, path, body = '')
send httpmethod, path, body
end
und dies ist das Verfahren I verwendet werden, wenn die lokalen Tests gegen den App Heroku ausgeführt wird:
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
ich das eine oder andere in die Gurke Welt geladen werden, basierend auf einer bestimmten Option übergeben sich in einem entsprechenden Profil Gurke und eingestellt (so, dass ich einfach cucumber -p heroku
anrufen kann, wenn ich gegen Heroku testen möchten).
Natürlich im zweiten Fall muss ich auch kümmern uns vor jedem Szenario die Heroku Datenbank initialisieren, ruft zum Beispiel so etwas wie dies in einem ‚vor‘ Haken:
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