Ruby on rails Ruby中的环境值

Ruby on rails Ruby中的环境值,ruby-on-rails,ruby,Ruby On Rails,Ruby,大家好,我想问的是Ruby是否有一个环境值,我可以在其中存储一个变量,并在测试中的任何地方使用它,就像QTP environment.value=“SomeValue”如果它用于测试,并且您不担心线程安全,那么可以使用全局变量或常量 $global_var = "SomeValue" CONSTANT = "SomeValue" 不应修改常量,并且可以修改$global\u var 如果您关心线程,可以使用线程变量 Thread.current[:your_var_name] = "SomeV

大家好,我想问的是Ruby是否有一个环境值,我可以在其中存储一个变量,并在测试中的任何地方使用它,就像QTP environment.value=“SomeValue”

如果它用于测试,并且您不担心线程安全,那么可以使用全局变量或常量

$global_var = "SomeValue"
CONSTANT = "SomeValue"
不应修改
常量
,并且可以修改
$global\u var

如果您关心线程,可以使用线程变量

Thread.current[:your_var_name] = "SomeValue"

每个线程都有一个不同的
线程值。当前[:您的\u var\u name]
环境变量存储在
ENV
常量中,可以像
散列一样访问它

e、 g

环境变量在存储配置时很有用

因此:

将使
ENV[“QTP”]
成为一个可以在应用程序的整个生命周期内访问的环境变量(您可以根据您所处的
测试
开发
生产
环境对其进行调整)

因此,您可以在运行ruby应用程序之前将配置存储在shell变量中,其中
bar.rb
包含:

puts ENV["QTP"]
按如下方式运行ruby文件:

QTP=foo ruby bar.rb
将“foo”打印到您的控制台

或者,您可以将值存储在常量中,并且在应用程序的整个生命周期内它“应该”保持不变

应用程序的环境是运行应用程序的操作系统/服务器,这意味着如果要存储应用程序中使用的变量,必须在操作系统级别进行设置


Heroku上Rails中环境变量的最佳示例:

heroku config:set YOUR_VAR=your_value

费加罗

我强烈建议你看看

这将模拟开发中的环境变量,并允许您非常轻松地将它们推送到生产环境中


强烈建议您在所有环境中保持ENV数据的一致性,这也是Figaro非常擅长的:)

非常感谢您的回复,但您对线程的理解是什么?我有一个主类,我想保存从excel工作表返回的许多值,以便在其他类中使用它。。。因为我的测试是数据驱动的,如果您不知道线程,那么您就不必担心答案的这一部分,您可以使用全局变量。
QTP=foo ruby bar.rb
heroku config:set YOUR_VAR=your_value