How to test a plugin

Guys,

I've created a plugin, i wanna put my automated test there.

However, I got bad file descriptor error when i run the test like normal unit test file: "ruby plugins/acts_as_fox/test/acts_as_fox_test.rb"

How to test a plugin?

Also, is it right to say that I should only put my unit tests (but not functional test for example) for the plugin in the plugin test folder?

<code for acts_as_fox_test.rb>

require File.join(File.dirname(__FILE__), 'test_helper')

require 'test/unit'

class ActsAsTripTest < Test::Unit::TestCase   # Replace this with your real tests.   def test_this_plugin     flunk   end end

</code>

<code for test_helper.rb> plugin_test_dir = File.dirname(__FILE__) require File.join(plugin_test_dir, '/test_helper')

# Load the Rails environment require File.join(plugin_test_dir, '../../../../config/environment') require 'active_record/fixtures'

# Load up out database & create our logger databases = YAML::load(IO.read(plugin_test_dir + '/database.yml')) ActiveRecord::Base.logger = Logger.new(plugin_test_dir + "/debug.log")

# Connect to our plugin test database ActiveRecord::Base.establish_connection(databases[ENV['DB'] || 'mysql'])

# Load the test schema into the database load(File.join(plugin_test_dir, 'schema.rb'))

# Load fixtures for the plugin Test::Unit::TestCase.fixture_path = File.join(plugin_test_dir, 'fixtures/') </code>

Thanks much!

Arthur

Guys,

I've created a plugin, i wanna put my automated test there.

However, I got bad file descriptor error when i run the test like normal unit test file: "ruby plugins/acts_as_fox/test/acts_as_fox_test.rb"

How to test a plugin?

Well what I do is based on a skeleton plugin I have here:

It doesn't do functional tests but that's basically a case of adding

require 'action_controller/test_case' require 'action_controller/test_process'

ActionController::Routing::Routes.draw do |map|   # Install the default route as the lowest priority.   map.connect ':controller/:action/:id' end ActionController::Base.view_paths = [Test::Unit::TestCase.fixture_path + 'views/']

to the test helper file

Fred

Thanks Fred.

It seems that the ar_plugin_skeleton is what I needed.

Thanks, Arthur

Frederick Cheung wrote:

I can run functional test now, thanks!!

A problem I found in running the test is that it does not load the route.rb so that it fails in some action --- e.g. assets_path/_url not defined.

Any clue to it is appreciated.

Arthur

Arthur Chan wrote:

I can run functional test now, thanks!!

A problem I found in running the test is that it does not load the route.rb so that it fails in some action --- e.g. assets_path/_url not defined.

Any clue to it is appreciated.

You need to define any routes needed in the ActionController::Routing::Routes.draw block in test_helper.rb

Fred