11175
(-- --)
December 3, 2008, 9:13am
#1
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
11175
(-- --)
December 5, 2008, 7:16am
#3
Thanks Fred.
It seems that the ar_plugin_skeleton is what I needed.
Thanks,
Arthur
Frederick Cheung wrote:
11175
(-- --)
January 6, 2009, 7:41am
#4
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