【问题标题】:Run all models tests using rake task使用 rake 任务运行所有模型测试
【发布时间】:2013-04-06 06:53:51
【问题描述】:

尝试使用 rake 任务仅在 test/models 目录中运行测试。使用 minitest。

我有一个将运行所有测试的 rake 任务

  require "rake/testtask"

  Rake::TestTask.new(:test => "db:test:prepare") do |t| 
    t.libs << "test"
    t.pattern = "test/**/*_test.rb"
 end

 task :default => :test

然后,运行“rake”会达到默认值并运行所有测试。我想编写第二个 rake 任务,它只会在模型目录(test/models/)中运行测试。

我通过简单的更改来玩弄这个现有的 TestTask

t.pattern = "test/**/*_test.rb"

t.pattern = "test/models/*_test.rb"

但是,它似乎仍在运行所有测试……不仅仅是模型。奇怪吗?

问题

我怎样才能做到这一点?我如何需要命名第二个仅运行模型的 TestTask,以及如何告诉 rake 运行该测试而不是默认的 :test?

【问题讨论】:

  • 我也尝试运行“ruby -Itest test/models/*”,但它只运行该目录中的第一个测试。 ??

标签: ruby-on-rails-3 rake rake-task minitest


【解决方案1】:

您正在寻找的模式是“test/models/**/*_test.rb”。 “**”也将匹配子目录。

如果您使用的是 minitest-rails,那么您会添加很多任务。运行所有模型测试运行:

rake minitest:models

要查看为您创建的所有 rake 任务,请运行:

rake -T

【讨论】:

    【解决方案2】:

    像往常一样,答案很简单。只是稍微挖掘了一下。确保您的 application.rb 中有以下内容(在模块内)。

    config.generators do |g|
        g.fixture_replacement :factory_girl # if your using factory_girl
        g.test_framework :mini_test, :spec => true, :fixture => false
    end 
    

    然后您可以访问内置命令的小测试。我要找的就是这么简单

    rake minitest:models
    

    嘘!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-06
      • 2011-10-17
      • 2013-09-06
      • 1970-01-01
      • 2011-06-07
      • 2018-02-11
      • 2010-11-18
      • 1970-01-01
      相关资源
      最近更新 更多