Cześć wszystko, co chcę zapytać, czy Ruby ma wartości środowiska, w których mogę przechowywać zmienną i używać jej w dowolnym miejscu mojego testu, tak jak QTP Environment.value = "SomeValue"
Odpowiedzi:
1 dla odpowiedzi № 1Zmienne środowiskowe są przechowywane w ENV
stały i można uzyskać do niego dostęp Hash
na przykład
ENV["PS1"]
=> "\u@\h:\w (\t)$ "
Zmienne środowiskowe są przydatne do przechowywania konfiguracji
więc:
ENV["QTP"] = "Some value"
zrobiłby ENV["QTP"]
zmienna środowiskowa, do której można uzyskać dostęp przez cały okres użytkowania aplikacji (można dostroić ją w zależności od środowiska, w którym się znajdujesz) test
, development
lub production
)
Możesz więc przechowywać swoją konfigurację w zmiennych powłoki przed uruchomieniem aplikacji ruby za pomocą bar.rb
zawierający:
puts ENV["QTP"]
Uruchamianie pliku ruby jak poniżej:
QTP=foo ruby bar.rb
Wypisuje „foo” na konsoli
alternatywnie można przechowywać wartości w stałej, a „powinna” pozostać taka sama przez cały okres użytkowania aplikacji
0 dla odpowiedzi nr 2
Jeśli jest to dla twojego testu i nie jesteś zainteresowany bezpieczeństwem nici, możesz użyć zmiennej globalnej lub stałej.
$global_var = "SomeValue"
CONSTANT = "SomeValue"
The CONSTANT
nie powinien być modyfikowany, a $global_var
może być modyfikowany
Jeśli interesują Cię wątki, możesz użyć zmiennej Thread
Thread.current[:your_var_name] = "SomeValue"
Każdy wątek ma inną wartość Thread.current[:your_var_name]
0 dla odpowiedzi № 3
Zmienne środowiska są dokładnie takie - zmienne przechowywane w Twojej aplikacji środowisko
Środowisko aplikacji to system operacyjny / serwer, na którym działa aplikacja, co oznacza, że jeśli chcesz przechowywać zmienne do wykorzystania w aplikacji, musisz je skonfigurować na poziomie systemu operacyjnego
Najlepszy przykład zmiennych ENV w Railsach na Heroku:
heroku config:set YOUR_VAR=your_value
Figaro
Gorąco polecam spojrzenie na Figaro
klejnot
Emuluje to zmienne ENV w rozwoju i pozwala na łatwe przeniesienie ich do środowiska produkcyjnego
Jest wysoce zalecane, abyś zachował spójność danych ENV we wszystkich środowiskach, w czym Figaro jest bardzo dobry :)