I am using rails 1.1.6 and ruby 1.8.4 (on ubuntu). In my unit test, I
have this code:
def test_add_translations
maison = Term.find_by_term('maison')
breakpoint "maison"
end
and when I get to the breakpoint session, I have no access to the
local variable. I know there's a problem with breakpoint and ruby
1.8.5, but it should work with 1.8.4 (from my understanding).
So, is there a workaround? I'd prefer to continue working with my
distribution's ruby. Or should I use another debugging method like
ruby-debug?
I am using rails 1.1.6 and ruby 1.8.4 (on ubuntu). In my unit test, I
I've installed ruby1.8.5 and get the same problem:
irb(test_add_translations(TermTest)):001:0> maison
NameError: undefined local variable or method `maison' for
#<TermTest:0xb75a11f0>
from /home/xx/rails/config/../vendor/rails/actionpack/lib/action_controller/test_process.rb:432:in
`method_missing'
from (irb):1:in `breakpoint'
from /home/xx/rails/config/../vendor/rails/railties/lib/breakpoint.rb:512:in
`breakpoint'
from /home/xx/rails/config/../vendor/rails/railties/lib/breakpoint.rb:512:in
`breakpoint'
from term_test.rb:48:in `test_add_translations'
from /usr/lib/ruby/1.8/test/unit/testcase.rb:78:in `__send__'
from /usr/lib/ruby/1.8/test/unit/testcase.rb:78:in `run'
from /usr/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'
from /usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'
from /usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'
from /usr/lib/ruby/1.8/test/unit/testsuite.rb:34:in `run'
from /usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `each'
from /usr/lib/ruby/1.8/test/unit/testsuite.rb:33:in `run'
from /usr/lib/ruby/1.8/test/unit/ui/testrunnermediator.rb:46:in
`run_suite'
from /usr/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:67:in
`start_mediator'
from /usr/lib/ruby/1.8/test/unit/ui/console/testrunner.rb:41:in `start'
from /usr/lib/ruby/1.8/test/unit/ui/testrunnerutilities.rb:29:in `run'
from /usr/lib/ruby/1.8/test/unit/autorunner.rb:200:in `run'
from /usr/lib/ruby/1.8/test/unit/autorunner.rb:13:in `run'
from /usr/lib/ruby/1.8/test/unit.rb:278
from term_test.rb:46irb(test_add_translations(TermTest)):002:0>
my work around for the error is to change the variable type (temporarily):
def test_add_translations
maison = Term.find_by_term('maison')
@m = maison
breakpoint
end
then, when the test hits the breakpoint, you should be able to just
type @m to see the value...
dumb, but it works. i only do this if i need to _do_ something with
the variable other than see it's value. otherwise, a puts works ok.
Ed Hickey
Developer
Litmus Media
816-533-0409
ehickey@litmusmedia.com
A Member of Think Partnership, Inc
www.ThinkPartnership.com
Amex ticker symbol: THK
my work around for the error is to change the variable type (temporarily):
def test_add_translations
maison = Term.find_by_term('maison')
@m = maison
breakpoint
end
then, when the test hits the breakpoint, you should be able to just
type @m to see the value...
dumb, but it works. i only do this if i need to _do_ something with
the variable other than see it's value. otherwise, a puts works ok.
I'll do that too then. I hoped there was a way to have access to local
variables. Is there a reason why it has no more access to local
variables?