Rspec Guard总是运行两次

时间:2014-10-28 18:37:33

标签: ruby-on-rails rspec guard

我一直在使用rspec和后卫自动运行我的测试我保存文件,但后卫每次都运行两次我不明白为什么,我在另一篇帖子中看到它可能是因为spec_helper.rb中有一个重复的配置选项,但我认为不是我的情况。我留下了spec_helper文件内容。希望知道如何解决这个问题,它开始需要很长时间等待后卫运行两次相同的

由于

# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
# Requires supporting ruby files with custom matchers and macros, etc,
# in spec/support/ and its subdirectories.
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }

# Checks for pending migrations before tests are run.
# If you are not using ActiveRecord, you can remove this line.
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration)

RSpec.configure do |config|
  # ## Mock Framework
  #
  # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
  #
  # config.mock_with :mocha
  # config.mock_with :flexmock
  # config.mock_with :rr
  config.include Devise::TestHelpers, type: :controller

  # If true, the base class of anonymous controllers will be inferred
  # automatically. This will be the default behavior in future versions of
  # rspec-rails.
  config.infer_base_class_for_anonymous_controllers = false

  config.include FactoryGirl::Syntax::Methods

  config.before(:suite) do
    FactoryGirl.lint
    DatabaseCleaner.strategy = :transaction
    DatabaseCleaner.clean_with(:truncation)
  end

  config.before(:all) do
    DatabaseCleaner.start
  end

  config.before(:each) do
    reset_email
  end

  config.after(:all) do
    DatabaseCleaner.clean
  end

  config.include(MailerMacros)
  config.include Rails.application.routes.url_helpers
end

3 个答案:

答案 0 :(得分:1)

尝试从config.order = "random"

中删除spec_helper.rb

答案 1 :(得分:0)

当您有多个具有相同名称的文件时,通常会发生这种情况。只需重命名你的rake文件,其中包含运行两次的逻辑。

请记住,可能存在您无权访问的内部gem文件,这些文件可能会与Guardfile冲突,从而导致重复执行。

答案 2 :(得分:0)

我强烈建议您在Guard中阅读此 Wiki条目:https://github.com/guard/guard/wiki/Understanding- Guard

...仅仅是因为上面没有提供足够的信息来查找原因(并且有一些可能的 - 像编辑器具有备份文件选项,缺少忽略规则,不支持的编辑器,慢文件系统,不正确的延迟,错误的规则在Guardfile中,多个监视规则匹配,Guard中的错误等。)

但是,Wiki页面可以快速帮助您深入了解核心原因。

如果是Listen问题,请在此处查看维基:https://github.com/guard/listen/wiki (尤其是LISTEN_GEM_DEBUGGING=1环境变量,以查看您是获得多个事件还是多个回调。)

获得该信息后,您可以在Guard中提交问题,我们可以根据您的情况确定原因。