Ruby on Rails | Screencasts | Download | Documentation | Weblog | Community | Source

Changeset 2790

Show
Ignore:
Timestamp:
10/28/05 20:28:09 (3 years ago)
Author:
bitsweat
Message:

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

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/railties/CHANGELOG

    r2788 r2790  
    11*SVN* 
     2 
     3* Added Rakefile to plugin generator.  [Jeremy Kemper] 
    24 
    35* Added test_plugins task: Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name) [DHH] 
  • trunk/railties/lib/rails_generator/generators/components/plugin/plugin_generator.rb

    r2784 r2790  
    11class PluginGenerator < Rails::Generator::NamedBase 
     2  attr_reader :plugin_path 
     3 
     4  def initialize(*args) 
     5    super 
     6    @plugin_path = "vendor/plugins/#{file_name}" 
     7  end 
     8 
    29  def manifest 
    310    record do |m| 
    4       m.directory File.join('vendor', 'plugins', file_name) 
    5       m.directory File.join('vendor', 'plugins', file_name, 'lib') 
    6       m.directory File.join('vendor', 'plugins', file_name, 'test') 
    7       m.directory File.join('vendor', 'plugins', file_name, 'tasks') 
     11      m.directory "#{plugin_path}/lib" 
     12      m.directory "#{plugin_path}/tasks" 
     13      m.directory "#{plugin_path}/test" 
    814 
    9       m.template 'plugin.rb',    File.join('vendor', 'plugins', file_name, 'lib',  "#{file_name}.rb") 
    10       m.template 'unit_test.rb', File.join('vendor', 'plugins', file_name, 'test', "#{file_name}_test.rb") 
    11  
    12       m.template 'init.rb',    File.join('vendor', 'plugins', file_name, 'init.rb') 
    13       m.template 'tasks.rake', File.join('vendor', 'plugins', file_name, 'tasks', "#{file_name}_tasks.rake") 
    14       m.template 'README',     File.join('vendor', 'plugins', file_name, 'README') 
     15      m.template 'README',        "#{plugin_path}/README" 
     16      m.template 'Rakefile',      "#{plugin_path}/Rakefile" 
     17      m.template 'init.rb',       "#{plugin_path}/init.rb" 
     18      m.template 'plugin.rb',     "#{plugin_path}/lib/#{file_name}.rb" 
     19      m.template 'tasks.rake',    "#{plugin_path}/tasks/#{file_name}_tasks.rake" 
     20      m.template 'unit_test.rb',  "#{plugin_path}/test/#{file_name}_test.rb" 
    1521    end 
    1622  end 
  • trunk/railties/lib/rails_generator/generators/components/plugin/templates/unit_test.rb

    r2785 r2790  
    33class <%= class_name %>Test < Test::Unit::TestCase 
    44  # Replace this with your real tests. 
    5   def test_truth 
    6     assert true 
     5  def test_this_plugin 
     6    flunk 
    77  end 
    88end 
  • trunk/railties/lib/tasks/testing.rake

    r2788 r2790  
    3838 
    3939desc "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)" 
    40 Rake::TestTask.new(:test_plugins => [ :prepare_test_database ]) do |t| 
     40Rake::TestTask.new(:test_plugins => :environment) do |t| 
    4141  t.libs << "test" 
    4242   
    4343  if ENV['PLUGIN'] 
    44     t.pattern = "vendor/plugins/#{ENV['PLUGIN']}/test/*_test.rb" 
     44    t.pattern = "vendor/plugins/#{ENV['PLUGIN']}/test/**/*_test.rb" 
    4545  else 
    46     t.pattern = 'vendor/plugins/**/test/*_test.rb' 
     46    t.pattern = 'vendor/plugins/**/test/**/*_test.rb' 
    4747  end 
    4848