2014-09-03 12 views
6

Uso Cucumber e Capybara per i miei test di front end automatizzati.Esecuzione di test di cetriolo su diversi ambienti

Ho due ambienti su cui vorrei eseguire i miei test. Uno è un ambiente di staging e l'altro è l'ambiente di produzione.

Attualmente, ho scritto i miei test per accedere direttamente alla stadiazione.

visit('https://staging.somewhere.com') 

Vorrei riutilizzare i test in produzione (https://production.somewhere.com).

sarebbe possibile memorizzare l'URL in una variabile nelle mie definizioni step

visit(domain) 

e definire dominio utilizzando una variabile d'ambiente chiamata forma la linea di comando? Come

$> bundle exec cucumber features DOMAIN=staging 

se voglio puntare il test per il mio ambiente di staging, o

$> bundle exec cucumber features DOMAIN=production 

se voglio che venga eseguito in produzione?

Come faccio a configurarlo? Sono abbastanza nuovo per Ruby e ho cercato nei forum informazioni semplici ma non ne ho trovato. Fammi sapere se posso fornire ulteriori informazioni. Grazie per l'aiuto!

risposta

6

Nel file di configurazione del progetto, creare un file config.yml

--- 
staging: 
    :url: https://staging.somewhere.com 

production: 
    :url: https://production.somewhere.com 

colon Poi in più nel file yml permette il tasto cancelletto di essere chiamato come un simbolo.

Nel file/env.rb supporto, aggiungere il seguente

require 'yaml'  

ENV['TEST_ENV'] ||= 'staging' 
project_root = File.expand_path('../..', __FILE__) 
$BASE_URL = YAML.load_file(project_root + "/config/config.yml")[ENV['TEST_ENV']][:url] 

Questo imposterà l'ambiente di staging a meno che non si modifica la TEST_ENV. Poi, dal vostro punto o il gancio, è possibile chiamare:

visit($BASE_URL) 

o potrebbe essere necessario:/

visit "#{$BASE_URL}" 

Questo vi permetterà di utilizzare

bundle exec cucumber features TEST_ENV=production 
+0

Grazie! Risposta molto dettagliata L'ho provato e ha funzionato. – RaymundS

1

Io non uso cucumber molto, ma si dovrebbe essere in grado di fare

bundle exec cucumber features DOMAIN=staging 

poi nei test utilizzano ENV['DOMAIN'] || YOUR_DEFAULT_DOMAIN di utilizzare questa variabile. YOUR_DEFAULT_DOMAIN dovrebbe probabilmente essere il tuo ambiente di test.

See Here

Problemi correlati