Удалить тест:: unit

Я забыл создать свое приложение с аргументом -T, и теперь он был установлен с тестом:: unit. Как удалить test:: unit и остановить его от создания тестов для каждого созданного контроллера/модели после того, как я уже создал приложение? Спасибо вам

Ответы

Ответ 1

В файле config/application.rb попробуйте

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

В ответ на комментарий

Try

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

Не может быть "наиболее подходящим" или "Rails-ish", но он работает

Обновление

Сегодня я читал Руководство по инициализации Rails и понял, что наиболее вероятная причина, по которой Test:: Unit по-прежнему включена, - это строка:

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

Чтобы удалить тест: Единица в Rails 4:

Замените следующую строку из config/application.rb:

require 'rails/all'

С

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

Вы также можете безопасно удалить тестовый каталог.

Ответ 3

Создайте новое приложение с rails new APP_NAME --skip-test-unit в Rails 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"

Ответ 4

На Rails 5.1 и Rails 5.2

в 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 каталог

Ответ 5

Самый чистый способ, как я упоминаю в аналогичном вопросе и ответе, должен сделать это...

Для Rails 3, чтобы удалить test_unit из вашего приложения, вам нужно удалить (или закомментировать) test_unit Railtie в config/application.rb:

# 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

Ответ 6

На Rails 6 в 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 "active_storage/engine"
require "action_controller/railtie"
require "action_mailer/railtie"
require "action_mailbox/engine"
require "action_text/engine"
require "action_view/railtie"
require "action_cable/engine"
require "sprockets/railtie"
# require "rails/test_unit/railtie"