在Ruby on Travis CI中检测环境变量
我有一组点文件,我正试图在Travis CI上进行测试 我不想在Travis上测试点文件的某些元素(比如安装自制应用程序)。要检测我是否在Travis中,我使用以下方法:在Ruby on Travis CI中检测环境变量,ruby,travis-ci,Ruby,Travis Ci,我有一组点文件,我正试图在Travis CI上进行测试 我不想在Travis上测试点文件的某些元素(比如安装自制应用程序)。要检测我是否在Travis中,我使用以下方法: if defined?($TRAVIS) && $TRAVIS != '' $TEST_ENV = true else $TEST_ENV = false end print "TEST ENV: " + $TEST_ENV.to_s 在这里,我检测Travis环境变量,然后在控制台中回显结果 但是
if defined?($TRAVIS) && $TRAVIS != ''
$TEST_ENV = true
else
$TEST_ENV = false
end
print "TEST ENV: " + $TEST_ENV.to_s
在这里,我检测Travis环境变量,然后在控制台中回显结果
但是,我一直认为,
$TEST\u ENV
为false
,无法找出原因。
不是环境变量,而是全局变量。环境变量如下所示:
ENV['TRAVIS']
在代码中,$TRAVIS总是未定义的
您的代码存在许多问题。这些措施包括:
&&
可能绑定得太紧。&&
与和之间的区别主要在于优先级,因此除非您确定解析器将看到什么,否则应该使用括号分隔多个条件
$TRAVIS
将始终为false# Are you sure you need a global variable here? If not, remove the dollar sign.
$test_env = ENV['TRAVIS'].to_s.empty?
请注意,一个未设置的环境变量将是nil,因此您需要在调用#to#s before#empty?如果一个未设置的变量和一个空字符串对于您的用例在逻辑上是等价的。否则,您将需要显式地处理nil。那么,我如何让问题中的代码按预期的方式运行呢?@BarryBlade:啊,我明白了。应该像
如果ENV['TRAVIS']
那么简单,你会认为这会起作用。唉,它没有检测到它。即使我手动添加变量。print“TEST ENV:+$TEST_ENV.to_s+”\n“print”TRAVIS:“+ENV['TRAVIS']”。to_s+“\n”
给出了TEST ENV:false TRAVIS:
@BarryBlade:不可读。把它写进要点什么的