2011-05-15 57 views
13

我忘了用-T參數創建我的應用程序,現在它已經安裝了test :: unit。在創建應用程序之後,如何刪除test :: unit並停止爲每個生成的控制器/模型創建測試?謝謝刪除測試::單元

回答

12

在你的config/application.rb中嘗試

config.generators do |g| 
    g.test_framework :rspeC#=> or whatever 
end 

迴應置評

嘗試

config.generators do |g| 
    g.test_framework nil 
end 

未必是 「最合適」 或Rails- ish way,but it works

更新

我讀了Rails初始化嚮導今天意識到,最可能的原因測試::單位仍然被列入是這一行:

require 'rails/all'

這可以替換爲:

require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "active_resource/railtie" 

這應該照顧到這個問題。如果您使用的是Rails 3.1.x,則還包括如果您打算使用資產管道,則還包括

require "sprockets/railtie" 

更新2

對於Rails的3.2,你應該這樣做:

config.app_generators do |c| 
    c.test_framework :rspec, :fixture => true, 
          :fixture_replacement => nil 

    c.integration_tool :rspec 
    c.performance_tool :rspec 
end 
+2

我想刪除目前的測試框架,而不是取代它? – user715697 2011-05-21 11:42:11

1

最乾淨的方式,因爲我在一個類似question and answer提的是做到這一點...

對於Rails 3,要刪除應用程序中的test_unit,需要刪除(或註釋掉)config/application.rb中的test_unit Railtie:

# require "rails/test_unit/railtie" 

如果您想了解這行代碼呢,看看目前看起來像這樣的railties/lib/rails/test_unit/railtie.rb source

module Rails 
    class TestUnitRailtie < Rails::Railtie 
    config.app_generators do |c| 
     c.test_framework :test_unit, :fixture => true, 
            :fixture_replacement => nil 

     c.integration_tool :test_unit 
     c.performance_tool :test_unit 
    end 

    rake_tasks do 
     load "rails/test_unit/testing.rake" 
    end 
    end 
end 
7

要刪除測試:單位在軌道4,5:

更換以下從配置行/ application.rb中

require 'rails/all' 

隨着:

require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "sprockets/railtie" 

您也可以安全地移除測試目錄。

5

建立與rails new APP_NAME --skip-test-unitRails的一個新的應用4個結果:

require "rails" 
# Pick the frameworks you want: 
require "active_model/railtie" 
require "active_job/railtie" 
require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
require "sprockets/railtie" 
# require "rails/test_unit/railtie" 
0

On Rails的5.1

config/application.rb

刪除或註釋掉

require 'rails/all' 

然後包括

require "rails" 
# Pick the frameworks you want: 
require "active_model/railtie" 
require "active_job/railtie" 
require "active_record/railtie" 
require "action_controller/railtie" 
require "action_mailer/railtie" 
require "action_view/railtie" 
require "action_cable/engine" 
require "sprockets/railtie" 
# require "rails/test_unit/railtie" 

此外,如果你不希望生成系統測試文件添加以下內容:

# Don't generate system test files. 
config.generators.system_tests = nil 

一旦做到這一點,你可以刪除test目錄

相關問題