提交 927b8472 编写于 作者: J Jeremy Kemper

Add Rakefile to plugin generator. Let test_plugins rake task look deeper into...

Add Rakefile to plugin generator.  Let test_plugins rake task look deeper into plugins' test dirs.  Make plugin test cases flunk by default.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2790 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 fd1d6d0e
*SVN*
* Added Rakefile to plugin generator. [Jeremy Kemper]
* Added test_plugins task: Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name) [DHH]
* Added default lighttpd config in config/lighttpd.conf and added a default runner for lighttpd in script/lighttpd (works like script/server, but using lighttpd and FastCGI) [DHH]
......
class PluginGenerator < Rails::Generator::NamedBase
attr_reader :plugin_path
def initialize(*args)
super
@plugin_path = "vendor/plugins/#{file_name}"
end
def manifest
record do |m|
m.directory File.join('vendor', 'plugins', file_name)
m.directory File.join('vendor', 'plugins', file_name, 'lib')
m.directory File.join('vendor', 'plugins', file_name, 'test')
m.directory File.join('vendor', 'plugins', file_name, 'tasks')
m.template 'plugin.rb', File.join('vendor', 'plugins', file_name, 'lib', "#{file_name}.rb")
m.template 'unit_test.rb', File.join('vendor', 'plugins', file_name, 'test', "#{file_name}_test.rb")
m.directory "#{plugin_path}/lib"
m.directory "#{plugin_path}/tasks"
m.directory "#{plugin_path}/test"
m.template 'init.rb', File.join('vendor', 'plugins', file_name, 'init.rb')
m.template 'tasks.rake', File.join('vendor', 'plugins', file_name, 'tasks', "#{file_name}_tasks.rake")
m.template 'README', File.join('vendor', 'plugins', file_name, 'README')
m.template 'README', "#{plugin_path}/README"
m.template 'Rakefile', "#{plugin_path}/Rakefile"
m.template 'init.rb', "#{plugin_path}/init.rb"
m.template 'plugin.rb', "#{plugin_path}/lib/#{file_name}.rb"
m.template 'tasks.rake', "#{plugin_path}/tasks/#{file_name}_tasks.rake"
m.template 'unit_test.rb', "#{plugin_path}/test/#{file_name}_test.rb"
end
end
end
require 'rake'
require 'rake/testtask'
require 'rake/rdoctask'
desc 'Default: run unit tests.'
task :default => :test
desc 'Test the <%= file_name %> plugin.'
Rake::TestTask.new(:test) do |t|
t.libs << 'lib'
t.pattern = 'test/**/*_test.rb'
t.verbose = true
end
desc 'Generate documentation for the <%= file_name %> plugin.'
Rake::RDocTask.new(:rdoc) do |rdoc|
rdoc.rdoc_dir = 'rdoc'
rdoc.title = '<%= class_name %>'
rdoc.options << '--line-numbers --inline-source'
rdoc.rdoc_files.include('README')
rdoc.rdoc_files.include('lib/**/*.rb')
end
......@@ -2,7 +2,7 @@
class <%= class_name %>Test < Test::Unit::TestCase
# Replace this with your real tests.
def test_truth
assert true
def test_this_plugin
flunk
end
end
......@@ -37,14 +37,14 @@ Rake::TestTask.new(:test_functional => [ :prepare_test_database ]) do |t|
end
desc "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)"
Rake::TestTask.new(:test_plugins => [ :prepare_test_database ]) do |t|
Rake::TestTask.new(:test_plugins => :environment) do |t|
t.libs << "test"
if ENV['PLUGIN']
t.pattern = "vendor/plugins/#{ENV['PLUGIN']}/test/*_test.rb"
t.pattern = "vendor/plugins/#{ENV['PLUGIN']}/test/**/*_test.rb"
else
t.pattern = 'vendor/plugins/**/test/*_test.rb'
t.pattern = 'vendor/plugins/**/test/**/*_test.rb'
end
t.verbose = true
end
\ No newline at end of file
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册