【问题标题】:Why is my minitest.rake running twice when I enter rake into terminal?当我将 rake 输入终端时,为什么我的 minitest.rake 会运行两次?
【发布时间】:2013-02-21 13:42:22
【问题描述】:

根据 ryan bates railscast (http://railscasts.com/episodes/327-minitest-with-rails),我创建了一个 minitest.rake。

当我在终端中运行 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

【问题讨论】:

    标签: ruby-on-rails testing rake minitest


    【解决方案1】:

    我想你已经有一个定义了这样一个名称的任务。如果你定义了一个同名的新任务,它会被附加到已经存在的任务中。

    如果你删除或注释掉这段代码并执行rake -Ttest 任务会在那里吗?

    【讨论】:

    • 我怎样才能找到它?这是我的 lib/tasks 目录中的唯一文件。
    • 如果你在 Rails 中使用它,它已经有 test 任务。如果您删除或注释掉您的任务代码并执行rake -T,会出现test 任务吗?
    • 它就在那里。如果我继续使用 'rake test' 并完全删除我的代码可以吗?
    • 好吧,如果您对现在的测试感到满意,那就可以了。如果您仍然想尝试 minitest,不幸的是我没有答案。 railscast 是付费的,所以我不知道 Ryan Bates 是如何解决这个问题的。
    • 是的,你是对的,我刚刚检查过了,rails new -T 生成了一个稍微不同的config/application.rb,其中所有的rails 组件都被加载了,但是rails/test_unit/railties 被跳过了,所以这个rake 任务是不存在的。
    【解决方案2】:

    只需用唯一的名称重命名您的 rake 文件即可;前任。 mintest1.rake.

    当我将 rake 文件命名为 paperclip.rake 时,我遇到了同样的问题。我在那个 rake 文件中定义了什么,它被执行了两次。我认为这是因为 Paperclip gem 已经定义了一个 rake 文件paperclip.rake。所以我只是将我的paperclip.rake 文件重命名为pc.rake,它对我有用。

    【讨论】:

    • 与回形针任务完全相同的问题;谢谢!
    【解决方案3】:

    你试过rake test:single TEST=path/to/test.rb吗?

    如果我要删除 :single 那么它会运行两次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-17
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多