I’ve got a rake TestTask that I have set a global variable in specific
cases (I know, I know, tsk tsk). However, this value doesn’t seem to be
available to my tests. This seems very strange to me. The variable
should be global, right? Below is a simple example. The test case fails
as the value of $test is nil and I have no idea why.
My rakefile.rb is:
require ‘rake/testtask’
Rake::TestTask.new do |t|
$test = “this is a test”
t.test_files = FileList[“my_test.rb”]
end
My test case my_test.rb is:
require ‘test/unit’
class MyTest < Test::Unit::TestCase
def test_global_variable
assert_equal “this is a test”, $test
end
end
I’ve got a rake TestTask that I have set a global variable in specific
cases (I know, I know, tsk tsk). However, this value doesn’t seem to be
available to my tests. …
The tests are run in new ruby processes, not in the
rake process itself.
I’ve got a rake TestTask that I have set a global variable in specific
cases (I know, I know, tsk tsk). However, this value doesn’t seem to be
available to my tests. …
The tests are run in new ruby processes, not in the
rake process itself.
Stefan
Ugh, I had suspicions this was the case. How does one pass information
(for example, which config file to use) that is given to the rake task
at the command line to the test case itself?
Ugh, I had suspicions this was the case. How does one pass information
(for example, which config file to use) that is given to the rake task
at the command line to the test case itself?
Simple parameters can be passed via environment variables.
So put ENV[“SOME_VAR”] = foo in the Rakefile and access
it via ENV[“SOME_VAR”] in the test process.
You can also set an environment variable on the rake commandline:
$ rake some_task SOME_VAR=foo
Stefan
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.