【问题标题】:Uninitialized constant error with rspec binstub (bin/rspec), but not with rspec itselfrspec binstub (bin/rspec) 未初始化的常量错误,但 rspec 本身没有
【发布时间】:2020-02-27 19:52:42
【问题描述】:

我间歇性地遇到这个问题,并且希望有一些想法来帮助解决它:

有时在我的 Rails 应用程序中,当我添加新文件(类或模块)或移动并重命名类/模块时,我在通过 binstub 执行 Rspec 时开始看到 Uninitialized constant 错误。但是,如果我直接执行rspec,我不会收到此错误(它也不存在于开发服务器或控制台上)。只是 binstub 遇到了这个问题。

bundle exec bin/rspec # uninitialized constant error
bundle exec rspec     # no errors

我能够解决它的唯一方法是完全重新启动我的计算机。即使是新的终端会话也无法克服它。 binstubs 加载速度更快,并且更喜欢依赖它们,但是当这种情况发生时重新启动我的计算机很烦人。

有人知道是什么导致了这个问题吗?

这是我的 binstub:

#!/usr/bin/env ruby
begin
  load File.expand_path('../spring', __FILE__)
rescue LoadError => e
  raise unless e.message.include?('spring')
end
require 'bundler/setup'
load Gem.bin_path('rspec-core', 'rspec')

【问题讨论】:

  • 试试spring stop 看看能不能解决问题。我的猜测是 spring 正在运行并且没有看到新文件。运行该命令应该使您不必重新启动计算机。我相信还有一个spring restart 命令
  • github.com/rails/spring/issues/519 前两位说的。我也很确定我已经看过这个问题两次了哈哈

标签: ruby-on-rails ruby spring rspec ruby-on-rails-5


【解决方案1】:

如果其他人觉得这很有用,@JayDorsey 的建议可以解决问题:

bundle exec spring stop

停止它后,使用 binstub 重新运行相同的测试可以解决问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2018-03-10
    • 2019-11-11
    • 1970-01-01
    • 2015-05-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多