2010-03-16 94 views
1

我正在研究一個Rails插件,它可以將有限的內存中緩存添加到ActiveRecord的查找器中。功能本身已經夠成熟了,但是我不能在單位測試中使用插件。爲Rails插件編寫測試

我現在有供應商/插件/ my_plugin/test/my_plugin_test.rb一個標準的ActiveSupport :: TestCase的子類與幾個基本的測試。我試着從插件目錄運行'rake test',並且我已經確認這個任務加載了測試用例的ruby文件,但是它實際上並沒有運行任何測試。

我跟着Rails插件指南(http://guides.rubyonrails.org/plugins.html)如適用,但它似乎是可怕的過時的(它表明的東西,現在Rails的自動執行等)

我得到的唯一的輸出是這樣的:

Kakadu:ingenious_record adam$ rake test 
(in /Users/adam/Sites/1_PRK/vendor/plugins/ingenious_record) 
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -Ilib:lib:test "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8/gems/rake-0.8.3/lib/rake/rake_test_loader.rb" "test/ingenious_record_test.rb" 

最簡單的測試情況是這樣的:

require 'test_helper' 
require 'active_record' 

class IngeniousRecordTest < ActiveSupport::TestCase 
    test "example" do 
    assert false 
    end 
end 

,無疑可以產生至少一些輸出,並且在唯一的測試該文件應該產生失敗的斷言。

任何想法我能做些什麼來讓Rails運行我的測試?

回答

3

顯然,rails 2.2.3有一個小問題,因爲它不包含插件中的'test/unit'包/文件。 爲了解決您的插件問題,只需添加以下到您的test_helper.rb中文件的頂部:

require 'test/unit' 

發現它作爲lighthouse票。

5

我使用的引擎插件的rake任務測試我的插件:

rake test:plugins:all PLUGIN=myplugin 

我敢肯定,你可以不用發動機,但它是一個選項。 Rails的最新版本(我仍然在2.2.2)已經集成了引擎支持。

+0

這樣做的好處是什麼? – Droj 2015-06-29 12:47:31