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:
http://github.com/fcheung/ar_plugin_skeleton/tree/master

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