In the head, I''m getting a new error that does not look like its one of mine... started in rev 251... if it is mine, can anyone tell me where to look? here''s the stack: Started /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in `mocha_teardown'': You have a nil object when you didn''t expect it! (NoMethodError) The error occurred while evaluating nil.teardown from /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' from /usr/lib/ruby/1.8/test/unit.rb:278 from test/unit/processor_application_test.rb:21 -- Virtually, Ned Wolpert http://www.codeheadsystems.com/blog/ "Settle thy studies, Faustus, and begin..." --Marlowe
Hmm. Can you (a) try updating to HEAD i.e. revision 254; and (b) give me an example test case that gives you the error (ideally the simplest you can make it). Thanks. On 05/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote:> > In the head, I''m getting a new error that does not look like its one > of mine... started in rev 251... if it is mine, can anyone tell me > where to look? > > here''s the stack: > > > Started > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in > `mocha_teardown'': You have a nil object when you didn''t expect it! > (NoMethodError) > The error occurred while evaluating nil.teardown from > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' > from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > from /usr/lib/ruby/1.8/test/unit.rb:278 > from test/unit/processor_application_test.rb:21 > > -- > Virtually, Ned Wolpert > http://www.codeheadsystems.com/blog/ > > "Settle thy studies, Faustus, and begin..." --Marlowe > _______________________________________________ > mocha-developer mailing list > mocha-developer at rubyforge.org > http://rubyforge.org/mailman/listinfo/mocha-developer >-- James. http://blog.floehopper.org http://tumble.floehopper.org
In this case, no real code is needed... It looks like the @mockery code isn''t getting initialized. I did a test case but its nothing major......here is my test case: mocha_test.rb: ----------------------------------- Cut Here--> require File.dirname(__FILE__) + ''/../test_helper'' require ''stubba'' # It still fails if this line isn''t there... class MochaTest < Test::Unit::TestCase # Replace this with your real tests. def test_truth assert true end end ----------------------------------- Cut Here--> Run command: ruby test/unit/mocha_test.rb Output: Started /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in `mocha_teardown'': You have a nil object when you didn''t expect it! (NoMethodError) The error occurred while evaluating nil.teardown from /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' from /usr/lib/ruby/1.8/test/unit.rb:278 from test/unit/mocha_test.rb:8 On Feb 5, 2008 5:32 PM, James Mead <jamesmead44 at gmail.com> wrote:> Hmm. Can you (a) try updating to HEAD i.e. revision 254; and (b) give me an > example test case that gives you the error (ideally the simplest you can > make it). Thanks. > > > On 05/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote: > > > > In the head, I''m getting a new error that does not look like its one > > of mine... started in rev 251... if it is mine, can anyone tell me > > where to look? > > > > here''s the stack: > > > > > > Started > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in > > `mocha_teardown'': You have a nil object when you didn''t expect it! > > (NoMethodError) > > The error occurred while evaluating nil.teardown from > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' > > from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > > from /usr/lib/ruby/1.8/test/unit.rb:278 > > from test/unit/processor_application_test.rb:21 > > > > -- > > Virtually, Ned Wolpert > > http://www.codeheadsystems.com/blog/ > > > > "Settle thy studies, Faustus, and begin..." --Marlowe > > _______________________________________________ > > mocha-developer mailing list > > mocha-developer at rubyforge.org > > http://rubyforge.org/mailman/listinfo/mocha-developer > > > > > > -- > James. > http://blog.floehopper.org > http://tumble.floehopper.org > _______________________________________________ > mocha-developer mailing list > mocha-developer at rubyforge.org > http://rubyforge.org/mailman/listinfo/mocha-developer >-- Virtually, Ned Wolpert http://www.codeheadsystems.com/blog/ "Settle thy studies, Faustus, and begin..." --Marlowe
Hmm. I don''t see this problem running Mocha revision 254 as a Rails plugin with Rails 1.2.3. What version of Rails are you running? And have you tried updating to revision 254? I''ll try going back to revision 251 when I have some time later today. Thanks. On 06/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote:> > In this case, no real code is needed... It looks like the @mockery > code isn''t getting initialized. > > I did a test case but its nothing major......here is my test case: > mocha_test.rb: > ----------------------------------- Cut Here--> > require File.dirname(__FILE__) + ''/../test_helper'' > > require ''stubba'' # It still fails if this line isn''t there... > > class MochaTest < Test::Unit::TestCase > > # Replace this with your real tests. > def test_truth > assert true > end > end > ----------------------------------- Cut Here--> > > Run command: ruby test/unit/mocha_test.rb > > Output: > Started > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in > `mocha_teardown'': You have a nil object when you didn''t expect it! > (NoMethodError) > The error occurred while evaluating nil.teardown from > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' > from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > from /usr/lib/ruby/1.8/test/unit.rb:278 > from test/unit/mocha_test.rb:8 > > > On Feb 5, 2008 5:32 PM, James Mead <jamesmead44 at gmail.com> wrote: > > Hmm. Can you (a) try updating to HEAD i.e. revision 254; and (b) give me > an > > example test case that gives you the error (ideally the simplest you can > > make it). Thanks. > > > > > > On 05/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote: > > > > > > In the head, I''m getting a new error that does not look like its one > > > of mine... started in rev 251... if it is mine, can anyone tell me > > > where to look? > > > > > > here''s the stack: > > > > > > > > > Started > > > > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in > > > `mocha_teardown'': You have a nil object when you didn''t expect it! > > > (NoMethodError) > > > The error occurred while evaluating nil.teardown from > > > > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' > > > from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > > > from /usr/lib/ruby/1.8/test/unit.rb:278 > > > from test/unit/processor_application_test.rb:21 > > > > > > -- > > > Virtually, Ned Wolpert > > > http://www.codeheadsystems.com/blog/ > > > > > > "Settle thy studies, Faustus, and begin..." --Marlowe > > > _______________________________________________ > > > mocha-developer mailing list > > > mocha-developer at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/mocha-developer > > > > > > > > > > > -- > > James. > > http://blog.floehopper.org > > http://tumble.floehopper.org > > _______________________________________________ > > mocha-developer mailing list > > mocha-developer at rubyforge.org > > http://rubyforge.org/mailman/listinfo/mocha-developer > > > > > > -- > Virtually, Ned Wolpert > http://www.codeheadsystems.com/blog/ > > "Settle thy studies, Faustus, and begin..." --Marlowe > _______________________________________________ > mocha-developer mailing list > mocha-developer at rubyforge.org > http://rubyforge.org/mailman/listinfo/mocha-developer >-- James. http://blog.floehopper.org http://tumble.floehopper.org
Yeah, I use the head of Mocha... so my tests auto-update to the lasted and execute on svn checkins. I need to track Mocha back to 251 because after this error, tests just stop... It seems like when my rails environment is loaded (Rails 2.0.2) the mocha_setup doesn''t occur so ''mockery'' doesn''t get built in the mocha_setup. Again, no clue why. Runs fine within just a ruby call and the library without the rails framework... so something isn''t playing well there it seems. On Feb 6, 2008 1:53 AM, James Mead <jamesmead44 at gmail.com> wrote:> Hmm. I don''t see this problem running Mocha revision 254 as a Rails plugin > with Rails 1.2.3. > > What version of Rails are you running? And have you tried updating to > revision 254? > > I''ll try going back to revision 251 when I have some time later today. > > Thanks. > > > On 06/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote: > > > > In this case, no real code is needed... It looks like the @mockery > > code isn''t getting initialized. > > > > I did a test case but its nothing major......here is my test case: > > mocha_test.rb: > > ----------------------------------- Cut Here--> > > require File.dirname(__FILE__) + ''/../test_helper'' > > > > require ''stubba'' # It still fails if this line isn''t there... > > > > class MochaTest < Test::Unit::TestCase > > > > # Replace this with your real tests. > > def test_truth > > assert true > > end > > end > > ----------------------------------- Cut Here--> > > > > Run command: ruby test/unit/mocha_test.rb > > > > Output: > > Started > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in > > `mocha_teardown'': You have a nil object when you didn''t expect it! > > (NoMethodError) > > The error occurred while evaluating nil.teardown from > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' > > from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > > from /usr/lib/ruby/1.8/test/unit.rb:278 > > from test/unit/mocha_test.rb:8 > > > > > > On Feb 5, 2008 5:32 PM, James Mead <jamesmead44 at gmail.com> wrote: > > > Hmm. Can you (a) try updating to HEAD i.e. revision 254; and (b) give me > > an > > > example test case that gives you the error (ideally the simplest you can > > > make it). Thanks. > > > > > > > > > On 05/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote: > > > > > > > > In the head, I''m getting a new error that does not look like its one > > > > of mine... started in rev 251... if it is mine, can anyone tell me > > > > where to look? > > > > > > > > here''s the stack: > > > > > > > > > > > > Started > > > > > > > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/standalone.rb:151:in > > > > `mocha_teardown'': You have a nil object when you didn''t expect it! > > > > (NoMethodError) > > > > The error occurred while evaluating nil.teardown from > > > > > > > > > > /home/wolpert/svn/rubylms/vendor/plugins/mocha/lib/mocha/test_case_adapter.rb:50: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:216:in `run'' > > > > from /usr/lib/ruby/1.8/test/unit/autorunner.rb:12:in `run'' > > > > from /usr/lib/ruby/1.8/test/unit.rb:278 > > > > from test/unit/processor_application_test.rb:21 > > > > > > > > -- > > > > Virtually, Ned Wolpert > > > > http://www.codeheadsystems.com/blog/ > > > > > > > > "Settle thy studies, Faustus, and begin..." --Marlowe > > > > _______________________________________________ > > > > mocha-developer mailing list > > > > mocha-developer at rubyforge.org > > > > http://rubyforge.org/mailman/listinfo/mocha-developer > > > > > > > > > > > > > > > > -- > > > James. > > > http://blog.floehopper.org > > > http://tumble.floehopper.org > > > _______________________________________________ > > > mocha-developer mailing list > > > mocha-developer at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/mocha-developer > > > > > > > > > > > -- > > Virtually, Ned Wolpert > > http://www.codeheadsystems.com/blog/ > > > > "Settle thy studies, Faustus, and begin..." --Marlowe > > _______________________________________________ > > mocha-developer mailing list > > mocha-developer at rubyforge.org > > http://rubyforge.org/mailman/listinfo/mocha-developer > > > > > > -- > James. > http://blog.floehopper.org > http://tumble.floehopper.org > _______________________________________________ > mocha-developer mailing list > mocha-developer at rubyforge.org > http://rubyforge.org/mailman/listinfo/mocha-developer >-- Virtually, Ned Wolpert http://www.codeheadsystems.com/blog/ "Settle thy studies, Faustus, and begin..." --Marlowe
On 06/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote:> > Yeah, I use the head of Mocha... so my tests auto-update to the lasted > and execute on svn checkins. I need to track Mocha back to 251 because > after this error, tests just stop... > > It seems like when my rails environment is loaded (Rails 2.0.2) the > mocha_setup doesn''t occur so ''mockery'' doesn''t get built in the > mocha_setup. Again, no clue why. Runs fine within just a ruby call and > the library without the rails framework... so something isn''t playing > well there it seems. >I''ve just created a fresh Rails project using Rails 2.0.2. I added the Mocha plugin from HEAD (revision 254). I added the following unit test... require File.dirname(__FILE__) + ''/../test_helper'' class TempTest < Test::Unit::TestCase def test_me assert true end end When I run this test, I get the following output (i.e. the test passes)... $ ruby test/unit/temp_test.rb Loaded suite test/unit/temp_test Started . Finished in 0.025527 seconds. 1 tests, 1 assertions, 0 failures, 0 errors Can you tell me if *anything* I''ve done sounds different from you? e.g. are you using fixtures? The call to require ''stubba'' is not necessary and should make no difference. Running script/about gives the following output... $ script/about About your application''s environment Ruby version 1.8.6 (i686-darwin8.10.3) RubyGems version 0.9.4 Rails version 2.0.2 Active Record version 2.0.2 Action Pack version 2.0.2 Active Resource version 2.0.2 Action Mailer version 2.0.2 Active Support version 2.0.2 Application root /Users/jamesmead/projects/temp Environment development Database adapter mysql Settings in test/test_helper.rb are the defaults... self.use_transactional_fixtures = true self.use_instantiated_fixtures = false fixtures :all Thanks. -- James. http://blog.floehopper.org http://tumble.floehopper.org
After more testing, the problem is the mocha changes conflict with a suggestion made by Ola Bini http://ola-bini.blogspot.com/2007/12/your-ruby-tests-are-memory-leaks.html We added his suggestion (which for some reason actually made the tests run faster) and by removing it causes the latest mocha changes to not fail on our code. Bini''s code removes (forceably) all instance variables set during the unit test... so its basically killing the Mocha variables simply because its not referenced in his code-base. So, its not a bug with Mocha, but an assumption of the variables that exist within the TestCase framework that Bini''s code makes... I do appreciate your help. I find it difficult to figure out what ''sandboxes'' are safe to play in with the Rails project and its plugins... and initial introspection into Bini''s code did not seem like a bad thing. Seems like there should be a better ''discovery'' technique on necessary variables though. (Side note, this is the first time Mocha added an instance variable to the test case itself, right? It would explain why this just happened recently.) Thanks again. On Feb 6, 2008 7:34 AM, James Mead <jamesmead44 at gmail.com> wrote:> On 06/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote: > > > > Yeah, I use the head of Mocha... so my tests auto-update to the lasted > > and execute on svn checkins. I need to track Mocha back to 251 because > > after this error, tests just stop... > > > > It seems like when my rails environment is loaded (Rails 2.0.2) the > > mocha_setup doesn''t occur so ''mockery'' doesn''t get built in the > > mocha_setup. Again, no clue why. Runs fine within just a ruby call and > > the library without the rails framework... so something isn''t playing > > well there it seems. > > > > I''ve just created a fresh Rails project using Rails 2.0.2. I added the Mocha > plugin from HEAD (revision 254). > > I added the following unit test... > > require File.dirname(__FILE__) + ''/../test_helper'' > > class TempTest < Test::Unit::TestCase > > def test_me > assert true > end > > end > > When I run this test, I get the following output (i.e. the test passes)... > > $ ruby test/unit/temp_test.rb > Loaded suite test/unit/temp_test > Started > . > Finished in 0.025527 seconds. > > 1 tests, 1 assertions, 0 failures, 0 errors > > Can you tell me if *anything* I''ve done sounds different from you? e.g. are > you using fixtures? > > The call to require ''stubba'' is not necessary and should make no difference. > > Running script/about gives the following output... > > $ script/about > About your application''s environment > Ruby version 1.8.6 (i686-darwin8.10.3) > RubyGems version 0.9.4 > Rails version 2.0.2 > Active Record version 2.0.2 > Action Pack version 2.0.2 > Active Resource version 2.0.2 > Action Mailer version 2.0.2 > Active Support version 2.0.2 > Application root /Users/jamesmead/projects/temp > Environment development > Database adapter mysql > > Settings in test/test_helper.rb are the defaults... > > self.use_transactional_fixtures = true > self.use_instantiated_fixtures = false > fixtures :all > > Thanks. > -- > > James. > http://blog.floehopper.org > http://tumble.floehopper.org > _______________________________________________ > mocha-developer mailing list > mocha-developer at rubyforge.org > http://rubyforge.org/mailman/listinfo/mocha-developer >-- Virtually, Ned Wolpert http://www.codeheadsystems.com/blog/ "Settle thy studies, Faustus, and begin..." --Marlowe
On 06/02/2008, Ned Wolpert <ned.wolpert at gmail.com> wrote:> > After more testing, the problem is the mocha changes conflict with a > suggestion made by Ola Bini > http://ola-bini.blogspot.com/2007/12/your-ruby-tests-are-memory-leaks.html > We added his suggestion (which for some reason actually made the tests > run faster) and by removing it causes the latest mocha changes to not > fail on our code. Bini''s code removes (forceably) all instance > variables set during the unit test... so its basically killing the > Mocha variables simply because its not referenced in his code-base. > > So, its not a bug with Mocha, but an assumption of the variables that > exist within the TestCase framework that Bini''s code makes... I do > appreciate your help. I find it difficult to figure out what > ''sandboxes'' are safe to play in with the Rails project and its > plugins... and initial introspection into Bini''s code did not seem > like a bad thing. Seems like there should be a better ''discovery'' > technique on necessary variables though. (Side note, this is the > first time Mocha added an instance variable to the test case itself, > right? It would explain why this just happened recently.) > > Thanks again. >Wow! Well done for figuring that out. Yes, I think it is the first time Mocha has added an instance variable to the test case - I''ve been doing some significant refactoring recently. I can probably do without it and perhaps that would be a less invasive approach. I''ll give it some more thought. Thanks for being tenacious enough to find the problem :-) -- James. http://blog.floehopper.org http://tumble.floehopper.org
On 06/02/2008, James Mead <jamesmead44 at gmail.com> wrote:> > I can probably do without it and perhaps that would be a less invasive > approach. I''ll give it some more thought. >Just to let you know, I just checked in revision 258 which removes the @mockery instance variable from the TestCase. So you should be able to use the Ola Bini patch safely again. -- James. http://blog.floehopper.org http://tumble.floehopper.org
Heh... I added the @mockery instance variable to Ola Bini''s "don''t touch variable" list... :-) On Feb 7, 2008 5:04 PM, James Mead <jamesmead44 at gmail.com> wrote:> On 06/02/2008, James Mead <jamesmead44 at gmail.com> wrote: > > > > I can probably do without it and perhaps that would be a less invasive > > approach. I''ll give it some more thought. > > > > Just to let you know, I just checked in revision 258 which removes the > @mockery instance variable from the TestCase. So you should be able to use > the Ola Bini patch safely again. > > > -- > James. > http://blog.floehopper.org > http://tumble.floehopper.org > _______________________________________________ > mocha-developer mailing list > mocha-developer at rubyforge.org > http://rubyforge.org/mailman/listinfo/mocha-developer >-- Virtually, Ned Wolpert http://www.codeheadsystems.com/blog/ "Settle thy studies, Faustus, and begin..." --Marlowe