2009-06-19 39 views
3

我已經添加了幾個模塊並將它們放在我的/ lib目錄中,我認爲lib目錄是由Rails神奇地加載的(除非我在項目早期加載了lib目錄並忘記了它)。但是,當我運行需要附加模塊的單元測試時,它們不會被加載。在Rails中運行Test :: Unit測試時加載lib文件?

運行測試時應該自動加載lib目錄還是有一種優雅的方式來測試?我曾希望rake腳本+ Test :: Unit能精確加載我的Rails環境,但似乎並非如此。我留下了做加入這樣的事情test_helper.rb中:

require File.expand_path(File.dirname(__FILE__) + "/../lib/foo") 

我跑我的測試與標準耙腳本,如:

rake test 
rake test:units 
rake test:functionals 

回答

4

你的lib目錄不會自動加載通過軌道。加載通過重寫const_missing的ActiveSupport :: Dependencies來實現。第一次使用常量時,如果未定義,Rails會嘗試在lib目錄(以及加載路徑中的其他位置)中找到它。爲了實現這一點,它使用命名方案,其中SomeClass預計在some_class.rb。測試模式下的Rails使用相同的機制。檢查你的config/environments/test.rb和config/environments/development.rb,看看你是否需要做一些有趣的事情。總之,檢查你的命名方案。

+0

你是對的 - 原來我在做我需要使用相對路徑,而不是像你說的常數,所以我必須: 需要「的lib/REXML」 而不是僅僅的: 需要「REXML ' 現在一切工作正常,在我的測試中,而不必明確加載它在我的text_helper。 – 2009-07-20 15:23:12

相關問題