2014-09-03 16 views
6

Używam Ogórek i Kapibara do moich automatycznych testów front-end.Przeprowadzanie testów ogórka w różnych środowiskach

Mam dwa środowiska, w których chciałbym przeprowadzić testy. Jednym z nich jest środowisko pomostowe, a drugim jest środowisko produkcyjne.

Obecnie mam napisane testy umożliwiające bezpośredni dostęp do inscenizacji.

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

Chciałbym ponownie wykorzystać testy w produkcji (https://production.somewhere.com).

Czy byłoby możliwe, aby zapisać adres w zmiennej w moich definicjach kroku

visit(domain) 

i zdefiniować domenę używając zmiennej środowiskowej o nazwie forma wiersza polecenia? Jak

$> bundle exec cucumber features DOMAIN=staging 

jeśli chcę podkreślić testy do mojego środowiska pomostowego lub

$> bundle exec cucumber features DOMAIN=production 

jeśli chcę go uruchomić w produkcji?

Jak mogę to skonfigurować? Jestem całkiem nowy w Ruby i przeszukuję fora, by uzyskać proste informacje, ale nie mogłem ich znaleźć. Daj mi znać, jeśli mogę podać więcej informacji. Dzięki za pomoc!

Odpowiedz

6

W pliku konfiguracyjnym projektu, stworzenie config.yml plik

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

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

Następnie dodatkowy dwukropek w pliku yml umożliwia klawisz krzyżyka być nazywany jako symbol.

W swojej wsparcia pliku/env.rb dodaj następujący

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] 

będzie to domyślne dla środowiska pomostowego chyba przesłonić TEST_ENV. Następnie, od etapu lub hak, można zadzwonić:

visit($BASE_URL) 

lub może zajść potrzeba:/

visit "#{$BASE_URL}" 

To pozwoli Ci wykorzystać

bundle exec cucumber features TEST_ENV=production 
+0

Dziękujemy! Bardzo szczegółowa odpowiedź. Wypróbowałem to i zadziałało. – RaymundS

1

nie używam cucumber dużo, ale powinieneś być w stanie zrobić

bundle exec cucumber features DOMAIN=staging 

następnie w badaniach korzystać ENV['DOMAIN'] || YOUR_DEFAULT_DOMAIN wykorzystać tę zmienną. YOUR_DEFAULT_DOMAIN powinno być prawdopodobnie Twoim środowiskiem testowym.

See Here

Powiązane problemy