Wooo-hooo! That did it. Thanks so much for your help. I'll let you know if I come across anything else.
Thanks again, Trey On 1/28/07, James Adam <[EMAIL PROTECTED]> wrote:
Hello again I've just updated the engines plugin source with a few tweaks, mostly aimed at testing. Update and have a look. In particular, the generated documentation now includes more information about running tests and creating a test_helper. - James On 1/28/07, James Adam <[EMAIL PROTECTED]> wrote: > Hi again Trey - > > Yeah, you'll definitely need to modify the line copied from Rails' > main test_helper so that it does actually point to the main > environment.rb file - I should've spotted that earlier! If you have > RAILS_ROOT/vendor/plugins/my_plugin/test/test_helper.rb, it should > contain > > require File.expand_path(File.dirname(__FILE__) + > "/../../../../config/environment") > > You might need to double-check that, but that should be the key. Once > this file loads, all the plugins (and in particular the engines > testing extensions) will be available. > > - james > > On 1/28/07, Trey Bean <[EMAIL PROTECTED]> wrote: > > Okay, I verified that I am running the tests with the engines task > > test:plugins:units (I inserted a puts statement in > > /vendor/plugins/engines/tasks/engines.rake and it was > > outputted). > > > > I then have two files in /vendor/plugins/tandem/test/unit/: > > page_test.rb and user_test.rb > > > > Both of these files are structured like: > > > > require File.dirname(__FILE__) + '/../test_helper' > > > > class UserTest < Test::Unit::TestCase > > #some test methods > > end > > > > I have verified that > > /vendor/plugins/tandem/test/test_helper.rb is getting > > called by placing puts $LOAD_PATH at the very top of the file. > > > > It outputs: > > > > lib > > /usr/local/lib/ruby/site_ruby/1.8 > > /usr/local/lib/ruby/site_ruby/1.8/i686-darwin8.5.2 > > /usr/local/lib/ruby/site_ruby > > /usr/local/lib/ruby/1.8 > > /usr/local/lib/ruby/1.8/i686-darwin8.5.2 > > . > > > > Below the $LOAD_PATH put, my test_helper.rb has: > > > > #ENV["RAILS_ENV"] = "test" > > #require File.expand_path(File.dirname(__FILE__) + "/../config/environment") > > require 'test/unit' > > require File.dirname(__FILE__) + > > '/../lib/authenticated_test_helper' > > include AuthenticatedTestHelper > > > > The top two lines are commented out because if they aren't, then I get the > > error: > > > > ./vendor/plugins/tandem/test/unit/../test_helper.rb:5:in > > `require': no such file to load -- > > /Users/treybean/Sites/project/vendor/plugins/tandem/config/environment > > (LoadError) > > from > > ./vendor/plugins/tandem/test/unit/../test_helper.rb:5 > > from > > ./vendor/plugins/tandem/test/unit/page_test.rb:1 > > from > > /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1 /lib/rake/rake_test_loader.rb:5 > > from > > /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1 /lib/rake/rake_test_loader.rb:5 > > rake aborted! > > Command failed with status (1): [/usr/local/bin/ruby -Ilib > > "/usr/local/lib/...] > > > > > > And if I put Engines:: Testing.set_fixture_path on line 2 (just below the > > LOAD_PATH line), I get this error: > > > > ./vendor/plugins/tandem/test/unit/../test_helper.rb:2: > > uninitialized constant Engines (NameError) > > from > > ./vendor/plugins/tandem/test/unit/page_test.rb:1 > > from > > /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1 /lib/rake/rake_test_loader.rb:5 > > from > > /usr/local/lib/ruby/gems/1.8/gems/rake-0.7.1 /lib/rake/rake_test_loader.rb:5 > > rake aborted! > > Command failed with status (1): [/usr/local/bin/ruby -Ilib > > "/usr/local/lib/...] > > > > > > Man, I feel like I'm so close, but either Rails or Engines (more likely > > both) isn't being initialized prior to the tests. Maybe the line > > > > require File.expand_path(File.dirname(__FILE__) + "/../config/environment") > > > > needs to be modified to actually point at the config/environment in the main > > application, rather than looking for it in my engine? > > > > Does this shed any light on what might be going on here? > > > > Thanks for you help on this. I am so excited to get this last piece in > > place. It looks like you've done some great work here. > > > > Trey > > > > On 1/27/07, James Adam <[EMAIL PROTECTED]> wrote: > > > > > > Hi Trey, > > > > > > On 1/27/07, Trey Bean <[EMAIL PROTECTED]> wrote: > > > > 1). Fixtures don't seem to be loading. I read in the docs that I need > > to > > > > call Engines::Testing.set_fixture_path first, but a) I couldn't get it > > to > > > > recognize Engines, and b) it looks like the rake plugins:units task does > > > > this for me—I think. > > > > > > The provided rake tasks will call > > > Engines::Testing.setup_plugin_fixtures , but you need to call > > > Engines::Testing.set_fixture_path yourself in your tests to redirect > > > Test::Unit to the new temporary fixture directory. > > > > > > However, more troubling is the fact that your code doesn't find the > > > engines plugin. Are you running the tests with the supplied rake > > > tasks, or manually (i.e. ruby /path/to/my/test.rb)? > > > > > > > 2). I had a file in my engine's lib folder that I need to include. I > > > > couldn't get it to include normally. I ended up getting it to work > > with: > > > > > > > > require File.dirname(__FILE__) + > > > > '/../lib/authenticated_test_helper' > > > > include AuthenticatedTestHelper > > > > > > > > where I used to be able to call include AuthenticatedTestHelper by > > itself. > > > > Are files in lib not automatically loaded? > > > > > > I believe a change in the way that Rails works means that some classes > > > aren't automagically loaded when they are referenced. Lib directories > > > are certainly available in the load path (you can check this yourself > > > by puts-ing $LOAD_PATH at the top of your tests), so a simple "require > > > 'file'" should be sufficient. Again - this seems like it might be > > > related to your not being able to reference the Engines module. > > > > > > > 3). In my original test_helper.rb there is the TestCase section, where > > you > > > > set certain options like self.use_transactional_fixtures, I was unable > > to > > > > get this to work. So, right now, I've commented them out. > > > > > > > > > > > > 4). What requires should be where? In the original files, there's > > > > > > > > ENV["RAILS_ENV"] = "test" > > > > require File.expand_path(File.dirname(__FILE__) + > > "/../config/environment") > > > > require 'test_help' > > > > > > > > in test_helper.rb - Do these still need to be in my engine's > > test_helper.rb? > > > > > > If your tests require the Rails environment to be loaded, yes. > > > > > > Actually, this might relate to a possible source of problems - you > > > won't be able to work with any of the engines functionality until you > > > load the rails environment (and so all the plugins) - are you trying > > > to reference anything within any plugins before these lines? > > > > > > Does any of the above help? > > > > > > -- > > > * J * > > > ~ > > > _______________________________________________ > > > engine-users mailing list > > > [email protected] > > > > > http://lists.rails-engines.org/listinfo.cgi/engine-users-rails-engines.org > > > > > > > > > _______________________________________________ > > engine-users mailing list > > [email protected] > > http://lists.rails-engines.org/listinfo.cgi/engine-users-rails-engines.org > > > > > > > > > -- > * J * > ~ > -- * J * ~ _______________________________________________ engine-users mailing list [email protected] http://lists.rails-engines.org/listinfo.cgi/engine-users-rails-engines.org
_______________________________________________ engine-users mailing list [email protected] http://lists.rails-engines.org/listinfo.cgi/engine-users-rails-engines.org
