бессмысленная постоянная ошибка rspec - PullRequest
0 голосов
/ 10 июня 2018

У меня есть приложение rails, работающее на VPS, этапы установки Ruby, Rails и RSpec на моем ноутбуке и VPS идентичны (за ними следует та же инструкция ).Но когда я хочу протестировать приложение, используя RSpec на VPS, оно выдает ошибку uninitialized constant (что-то вроде this ).точный клон проекта работает без ошибок на моем ноутбуке!Несмотря на то, что тесты выполняются на моем ноутбуке без каких-либо проблем, я пытался найти решения в Интернете, но они мне не помогли - даже я переустановил Ruby, Rails и RSpec на сервере!


Необходимо отметить, что приложение отлично работает на сервере через Интернет (приложение представляет собой веб-сайт) без каких-либо проблем.Определенно это проблема RSpec;не Ruby или Rails.

Вопросы:

  1. Что не так с RSpec?
  2. Как это исправить?

Редактировать:

Точный вывод ошибки следующий:

Traceback (most recent call last):
    32: from /home/user/.rvm/gems/ruby-2.5.0/bin/ruby_executable_hooks:15:in `<main>'
    31: from /home/user/.rvm/gems/ruby-2.5.0/bin/ruby_executable_hooks:15:in `eval'
    30: from /home/user/.rvm/gems/ruby-2.5.0/bin/rspec:23:in `<main>'
    29: from /home/user/.rvm/gems/ruby-2.5.0/bin/rspec:23:in `load'
    28: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/exe/rspec:4:in `<top (required)>'
    27: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:45:in `invoke'
    26: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:71:in `run'
    25: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:86:in `run'
    24: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/runner.rb:99:in `setup'
    23: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:21:in `configure'
    22: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:111:in `process_options_into'
    21: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:111:in `each'
    20: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration_options.rb:112:in `block in process_options_into'
    19: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in `requires='
    18: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in `each'
    17: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in `block in requires='
    16: from /home/user/.rvm/gems/ruby-2.5.0/gems/rspec-core-3.7.1/lib/rspec/core/configuration.rb:1455:in `require'
    15: from /var/www/www.site.com/spec/rails_helper.rb:17:in `<top (required)>'
    14: from /var/www/www.site.com/spec/rails_helper.rb:17:in `each'
    13: from /var/www/www.site.com/spec/rails_helper.rb:19:in `block in <top (required)>'
    12: from /var/www/www.site.com/spec/rails_helper.rb:19:in `each'
    11: from /var/www/www.site.com/spec/rails_helper.rb:19:in `block (2 levels) in <top (required)>'
    10: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:29:in `require'
     9: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:20:in `require_with_bootsnap_lfi'
     8: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/loaded_features_index.rb:65:in `register'
     7: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `block in require_with_bootsnap_lfi'
     6: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require'
     5: from /var/www/www.site.com/spec/support/helpers/api.rb:1:in `<main>'
     4: from /var/www/www.site.com/spec/support/helpers/api.rb:2:in `<module:APIHelper>'
     3: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/active_support.rb:42:in `load_missing_constant'
     2: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `rescue in load_missing_constant'
     1: from /home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `without_bootsnap_cache'
/home/user/.rvm/gems/ruby-2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/active_support.rb:53:in `block in load_missing_constant': uninitialized constant APIHelper::AuthHelper (NameError)

Сводка:

`block in load_missing_constant': uninitialized constant APIHelper::AuthHelper (NameError)

1 Ответ

0 голосов
/ 11 июня 2018

Что не так с RSpec?

Нет ничего плохого в RSpec.

Как я могу это исправить?

Вы не должны запускать свой набор тестов в производстве.Существует множество шагов, сделанных различными инструментами в наборе инструментов, чтобы помешать вам сделать это (например, установка неявных переменных среды.) Если вы все еще уверены, что хотите запускать свои тесты удаленно (чего не следует делать), явная настройка среды должнавозможно поможет:

RAILS_ENV=test bundle install
RAILS_ENV=test bundle exec rspec
...