gpt4 book ai didi

ruby-on-rails - 带有 Rails 5.1 的 Redis 打破了 Rspec

转载 作者:可可西里 更新时间:2023-11-01 11:24:30 25 4
gpt4 key购买 nike

我有一个 Rspec 测试套件,在我将 Redis 安装到我的 Web 应用程序之前它一直运行良好。

是config/initializers/redis.rb文件中的两行代码

uri = URI.parse(ENV['REDISTOGO_URL'])
$redis = Redis::Namespace.new("EW", :redis => Redis.new(url: uri))

当我评论上面的内容时,rspec 工作正常(我什至还没有开始测试 redis,因为我不能)。

下面是 rspec 给我的错误。

  An error occurred while loading ./spec/models/waitlist_spec.rb.
Failure/Error: require File.expand_path('../../config/environment', __FILE__)

URI::InvalidURIError:
bad URI(is not URI?):
# ./config/initializers/redis.rb:1:in `<top (required)>'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in `load'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in `block in load'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:258:in `load_dependency'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in `load'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/engine.rb:655:in `block in load_config_initializer'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/notifications.rb:168:in `instrument'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/engine.rb:654:in `load_config_initializer'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/engine.rb:612:in `block (2 levels) in <class:Engine>'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/engine.rb:611:in `each'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/engine.rb:611:in `block in <class:Engine>'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/initializable.rb:30:in `instance_exec'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/initializable.rb:30:in `run'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/initializable.rb:59:in `block in run_initializers'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/initializable.rb:48:in `each'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/initializable.rb:48:in `tsort_each_child'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/initializable.rb:58:in `run_initializers'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/railties-5.1.0/lib/rails/application.rb:353:in `initialize!'
# ./config/environment.rb:5:in `<top (required)>'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `require'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `block in require'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:258:in `load_dependency'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `require'
# ./spec/rails_helper.rb:3:in `<top (required)>'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `require'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `block in require'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:258:in `load_dependency'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:292:in `require'
# ./spec/models/waitlist_spec.rb:1:in `<top (required)>'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in `load'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in `block in load'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:258:in `load_dependency'
# /Users/ptenteromano/.rvm/gems/ruby-2.2.5@new_wardrobe/gems/activesupport-5.1.0/lib/active_support/dependencies.rb:286:in `load'
# ------------------
# --- Caused by: ---
# NoMethodError:
# undefined method `to_str' for nil:NilClass
# ./config/initializers/redis.rb:1:in `<top (required)>'
No examples found.

Randomized with seed 3749


Finished in 0.00061 seconds (files took 9.32 seconds to load)
0 examples, 0 failures, 18 errors occurred outside of examples

我对处理复杂的 Web 应用程序还很陌生,之前从未使用过 Redis,所以我对此有点迷茫。

感谢任何帮助。

最佳答案

事实证明它就像评论者提到的一样简单。 ENV 变量不是 URI 可读的,所以我使用了一种编码方法,它解决了这个问题。

encoded_url = URI.encode(ENV['REDISTOGO_URL'])
uri = URI.parse(encoded_url)

关于ruby-on-rails - 带有 Rails 5.1 的 Redis 打破了 Rspec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51131003/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com