Ahoj všetci, chcem sa opýtať, či má Ruby hodnoty prostredia, v ktorých môžem uložiť premennú a použiť ju kdekoľvek v mojom teste, rovnako ako QTP Environment.value = "SomeValue"
odpovede:
1 pre odpoveď č. 1Premenné prostredia sú uložené v ENV
konštantný a dá sa k nemu pristupovať ako Hash
napr
ENV["PS1"]
=> "\u@\h:\w (\t)$ "
Premenné prostredia sú užitočné pri ukladaní konfigurácií
so:
ENV["QTP"] = "Some value"
rád by urobil ENV["QTP"]
premenná prostredia, ku ktorej je možné pristupovať po celú dobu životnosti vašej aplikácie (môžete ju vyladiť podľa toho, v akom prostredí sa nachádzate test
, development
alebo production
)
Takže môžete svoju konfiguráciu uložiť do premenných shellu pred spustením aplikácie Ruby pomocou bar.rb
obsahujúce:
puts ENV["QTP"]
Spustenie súboru Ruby podľa nasledujúceho postupu:
QTP=foo ruby bar.rb
Vytlačili by ste „foo“ na vašu konzolu
Prípadne môžete ukladať hodnoty do konštantnej hodnoty a „mala by“ zostať rovnaká počas celej životnosti vašej aplikácie
0 pre odpoveď č. 2
Ak je to pre váš test a neznepokojuje vás bezpečnosť vlákna, môžete použiť globálnu premennú alebo konštantu.
$global_var = "SomeValue"
CONSTANT = "SomeValue"
Na CONSTANT
nemá sa meniť a $global_var
môžu byť upravené
Ak sa obávate nití, môžete použiť premennú Thread
Thread.current[:your_var_name] = "SomeValue"
Každé vlákno má inú hodnotu Thread.current[:your_var_name]
0 pre odpoveď č. 3
Premenné prostredia sú presne to - premenné uložené v aplikácii prostredie
Prostredím vašej aplikácie je OS / server, na ktorom je aplikácia spustená, čo znamená, že ak chcete ukladať premenné na použitie v aplikácii, musíte ich nastaviť na úrovni OS.
Najlepší príklad premenných ENV v Rails on Heroku:
heroku config:set YOUR_VAR=your_value
Figaro
Veľmi by som odporučil pri pohľade na Figaro
klenot
To emuluje vývojové premenné ENV a umožňuje vám veľmi ľahko ich tlačiť do produkčného prostredia
Dôrazne sa odporúča, aby ste svoje údaje ENV udržiavali konzistentné vo všetkých prostrediach, čo je Figaro veľmi dobré :)