[RAILS] Was ist zu tun, wenn Fehler / Fehler: Datei erforderlich.expand_path ('../ config / environment', __dir__) in RSpec angezeigt wird

was ist passiert

Als ich den Test mit dem Befehl rspec ausführte, bekam ich plötzlich einen Fehler wie den Titel, obwohl ich ihn ohne Probleme ausführen konnte. Als Ergebnis fand ich heraus, dass es an einem Bundle-Update lag. Als eine Person, die beiläufig ein Bundle-Update durchgeführt hat, hatte ich das Gefühl, "Ich habe einen Fehler erhalten, obwohl ich nichts getan habe".

Unten sehen Sie die Ergebnisausgabe, wenn der Befehl rspec ausgeführt wird.

$ rspec spec/models/task_spec.rb 
 
 An error occurred while loading ./spec/models/task_spec.rb.
 Hint: Install the `did_you_mean` gem in order to provide suggestions for similarly named files.
 Failure/Error: require File.expand_path('../config/environment', __dir__)
 
 LoadError:
   cannot load such file -- public_suffix
 # ./config/application.rb:7:in `<top (required)>'
 # ./config/environment.rb:2:in `require_relative'
 # ./config/environment.rb:2:in `<top (required)>'
 # ./spec/rails_helper.rb:5:in `<top (required)>'
 # ./spec/models/task_spec.rb:1:in `<top (required)>'
 No examples found.
 
 Finished in 0.00005 seconds (files took 1.39 seconds to load)
 0 examples, 0 failures, 1 error occurred outside of examples

Lösungen

Ich werde zuerst die Lösung schreiben Das Problem mit diesem Fehler ist die Version der Bibliothek kann solche Datei nicht laden --public_suffix besagt, dass die Bibliothek mit dem Namen public_suffix aufgrund der Version nicht geladen werden kann. In meinem Fall war es zum Zeitpunkt des Fehlers "public_suffix (4.0.6)" Beim vorherigen Commit ohne Fehler war es "public_suffix (4.0.5)". Wechseln Sie also von Gemfile.lock zu "public_suffix (4.0.6)" → "public_suffix (4.0.5)" Führen Sie die Bundle-Installation aus

Wenn ich den Test erneut mit rspec durchführe

$ rspec spec/models/task_spec.rb 
 
 An error occurred while loading ./spec/models/task_spec.rb.
 Hint: Install the `did_you_mean` gem in order to provide suggestions for similarly named files.
 Failure/Error: require 'rspec/rails'
 
 LoadError:
   cannot load such file -- minitest/assertions
 # ./spec/rails_helper.rb:8:in `<top (required)>'
 # ./spec/models/task_spec.rb:1:in `<top (required)>'
 No examples found.
 
 Finished in 0.00013 seconds (files took 2.54 seconds to load)
 0 examples, 0 failures, 1 error occurred outside of examples

Und ich habe wieder einen Fehler erhalten, aber ich werde die Version von "kann solche Dateien nicht laden - minitest / assertions" und minitest auf die gleiche Weise wie public_suffix reparieren. In meinem Fall habe ich es von "Minitest (5.14.2)" in "Minitest (5.14.1)" geändert Auch wenn Sie rspec bündeln, installieren und ausführen

$ rspec spec/models/task_spec.rb 
 
 Task
Hoge 2
 
 Finished in 0.00808 seconds (files took 1.99 seconds to load)
 1 example, 0 failures

Bestanden! Behoben: Freude:

Was ich getan habe, um die Ursache zu lösen

Im Folgenden werde ich schreiben, warum dieser Fehler aufgetreten ist und welche Art von Suche ich zu lösen versucht habe.

Das Wesentliche des Problems ist nicht "Fehler / Fehler: Datei.expand_path ('../ config / environment', __dir __) erforderlich", sondern "solche Datei kann nicht geladen werden --public_suffix" Ich habe eine Bibliothek namens public_suffix, aber das Problem war, dass sie nicht geladen wurde. Schauen Sie sich einfach Gemfile.lock an und es ist installiert. Also ist es eine andere Version? Ich kam auf die Idee und löste sie

Anfangs dachte ich, es sei ein Fehler und suchte nach "Failure / Error: require File.expand_path ('../ config / environment', __dir __)" Daher ist es im Titel enthalten. Selbst wenn ich suchte, konnte das Problem nicht gelöst werden und ich konnte nur verstehen, dass es kein Problem auf der rspec-Seite war.

Selbst wenn ich rspec aus dem ursprünglichen Projekt mit neuen Schienen erneut einführte, verschwand der Fehler nicht, sodass klar war, dass es kein Problem mit rspec war.

Nachdem ich ungefähr 6 Stunden lang gekämpft hatte, stellte ich fest, dass "Fehler / Fehler: Datei.expand_path ('../ config / environment', __dir __) erforderlich" ein Nebeneffekt des wesentlichen Problems war. - Ich habe erkannt, dass public_suffix` die Essenz des Fehlers ist Ich wusste nicht, dass public_suffix eine Bibliothek ist, daher dachte ich, es sei ein Fehler, weshalb die Behebung lange dauerte. Danach habe ich Gemfile.lock mit public_suffix durchsucht und festgestellt, dass die Version im Vergleich zum vorherigen Commit anders war. Deshalb habe ich sie zurückgegeben und sie wurde behoben.

Die Suche nach "Fehler / Fehler: erfordert File.expand_path ('../ config / environment', __dir __)" hat das Problem übrigens nicht gelöst, daher habe ich diesen Artikel für diejenigen geschrieben, die denselben Fehler erhalten haben. Ta

Lektion

Beenden wir das unschuldige Bundle-Update! Die Ursache des Fehlers war eine Änderung in der Version der Bibliothek. Wenn Sie also plötzlich einen Fehler erhalten, vermuten Sie die Version. Erstens habe ich das Verhalten rund um das Bundle nicht verstanden, und es war das schlimmste Element, das ich irgendwie verwendet habe. Ich hatte Schmerzen im Bündel, also habe ich in diesem Artikel studiert https://qiita.com/lasershow/items/1a048d03ddaaba98171e

Blinddarm

Gemfile und Gemfile.lock, die die Versionen von public_suffix und minitest so korrigierten, dass rspec funktioniert.

Gemfile


ruby '2.6.5'
 gem 'bootstrap', '4.5.2'
 gem 'slim-rails', '3.2.0'
 gem 'html2slim', '0.2.0'
 gem 'enum_help', '0.0.17'
 
 gem 'rails', '~> 6.0.1'
 gem 'pg', '>= 0.18', '< 2.0'
 gem 'puma', '~> 4.1'
 gem 'sass-rails', '>= 6'
 gem 'webpacker', '~> 4.0'
 gem 'turbolinks', '~> 5'
 gem 'jbuilder', '~> 2.7'
 gem 'bootsnap', '>= 1.4.2'
 
 group :development, :test do
   gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
 end
 
 group :development do
   gem 'web-console', '>= 3.3.0'
   gem 'listen', '>= 3.0.5', '< 3.2'
   gem 'spring'
   gem 'spring-watcher-listen', '~> 2.0.0'
 end
 
 group :test do
   gem 'capybara', '>= 2.15'
   gem 'selenium-webdriver'
   gem 'webdrivers'
   gem 'rspec-rails', '< 4.0.0'
 end
 
 gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    actioncable (6.0.3.4)
      actionpack (= 6.0.3.4)
      nio4r (~> 2.0)
      websocket-driver (>= 0.6.1)
    actionmailbox (6.0.3.4)
      actionpack (= 6.0.3.4)
      activejob (= 6.0.3.4)
      activerecord (= 6.0.3.4)
      activestorage (= 6.0.3.4)
      activesupport (= 6.0.3.4)
      mail (>= 2.7.1)
    actionmailer (6.0.3.4)
      actionpack (= 6.0.3.4)
      actionview (= 6.0.3.4)
      activejob (= 6.0.3.4)
      mail (~> 2.5, >= 2.5.4)
      rails-dom-testing (~> 2.0)
    actionpack (6.0.3.4)
      actionview (= 6.0.3.4)
      activesupport (= 6.0.3.4)
      rack (~> 2.0, >= 2.0.8)
      rack-test (>= 0.6.3)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.0, >= 1.2.0)
    actiontext (6.0.3.4)
      actionpack (= 6.0.3.4)
      activerecord (= 6.0.3.4)
      activestorage (= 6.0.3.4)
      activesupport (= 6.0.3.4)
      nokogiri (>= 1.8.5)
    actionview (6.0.3.4)
      activesupport (= 6.0.3.4)
      builder (~> 3.1)
      erubi (~> 1.4)
      rails-dom-testing (~> 2.0)
      rails-html-sanitizer (~> 1.1, >= 1.2.0)
    activejob (6.0.3.4)
      activesupport (= 6.0.3.4)
      globalid (>= 0.3.6)
    activemodel (6.0.3.4)
      activesupport (= 6.0.3.4)
    activerecord (6.0.3.4)
      activemodel (= 6.0.3.4)
      activesupport (= 6.0.3.4)
    activestorage (6.0.3.4)
      actionpack (= 6.0.3.4)
      activejob (= 6.0.3.4)
      activerecord (= 6.0.3.4)
      marcel (~> 0.3.1)
    activesupport (6.0.3.4)
      concurrent-ruby (~> 1.0, >= 1.0.2)
      i18n (>= 0.7, < 2)
      minitest (~> 5.1)
      tzinfo (~> 1.1)
      zeitwerk (~> 2.2, >= 2.2.2)
    addressable (2.7.0)
      public_suffix (>= 2.0.2, < 5.0)
    autoprefixer-rails (10.0.1.0)
      execjs
    bindex (0.8.1)
    bootsnap (1.4.8)
      msgpack (~> 1.0)
    bootstrap (4.5.2)
      autoprefixer-rails (>= 9.1.0)
      popper_js (>= 1.14.3, < 2)
      sassc-rails (>= 2.0.0)
    builder (3.2.4)
    byebug (11.1.3)
    capybara (3.33.0)
      addressable
      mini_mime (>= 0.1.3)
      nokogiri (~> 1.8)
      rack (>= 1.6.0)
      rack-test (>= 0.6.3)
      regexp_parser (~> 1.5)
      xpath (~> 3.2)
    childprocess (3.0.0)
    concurrent-ruby (1.1.7)
    crass (1.0.6)
    diff-lcs (1.4.4)
    enum_help (0.0.17)
      activesupport (>= 3.0.0)
    erubi (1.9.0)
    execjs (2.7.0)
    ffi (1.13.1)
    globalid (0.4.2)
      activesupport (>= 4.2.0)
    hpricot (0.8.6)
    html2slim (0.2.0)
      hpricot
    i18n (1.8.5)
      concurrent-ruby (~> 1.0)
    jbuilder (2.10.1)
      activesupport (>= 5.0.0)
    listen (3.1.5)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
      ruby_dep (~> 1.2)
    loofah (2.7.0)
      crass (~> 1.0.2)
      nokogiri (>= 1.5.9)
    mail (2.7.1)
      mini_mime (>= 0.1.1)
    marcel (0.3.3)
      mimemagic (~> 0.3.2)
    method_source (1.0.0)
    mimemagic (0.3.5)
    mini_mime (1.0.2)
    mini_portile2 (2.4.0)
    minitest (5.14.1)
    msgpack (1.3.3)
    nio4r (2.5.4)
    nokogiri (1.10.10)
      mini_portile2 (~> 2.4.0)
    pg (1.2.3)
    popper_js (1.16.0)
    public_suffix (4.0.5)
    puma (4.3.6)
      nio4r (~> 2.0)
    rack (2.2.3)
    rack-proxy (0.6.5)
      rack
    rack-test (1.1.0)
      rack (>= 1.0, < 3)
    rails (6.0.3.4)
      actioncable (= 6.0.3.4)
      actionmailbox (= 6.0.3.4)
      actionmailer (= 6.0.3.4)
      actionpack (= 6.0.3.4)
      actiontext (= 6.0.3.4)
      actionview (= 6.0.3.4)
      activejob (= 6.0.3.4)
      activemodel (= 6.0.3.4)
      activerecord (= 6.0.3.4)
      activestorage (= 6.0.3.4)
      activesupport (= 6.0.3.4)
      bundler (>= 1.3.0)
      railties (= 6.0.3.4)
      sprockets-rails (>= 2.0.0)
    rails-dom-testing (2.0.3)
      activesupport (>= 4.2.0)
      nokogiri (>= 1.6)
    rails-html-sanitizer (1.3.0)
      loofah (~> 2.3)
    railties (6.0.3.4)
      actionpack (= 6.0.3.4)
      activesupport (= 6.0.3.4)
      method_source
      rake (>= 0.8.7)
      thor (>= 0.20.3, < 2.0)
    rake (13.0.1)
    rb-fsevent (0.10.4)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    regexp_parser (1.8.1)
    rspec-core (3.9.3)
      rspec-support (~> 3.9.3)
    rspec-expectations (3.9.2)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.9.0)
    rspec-mocks (3.9.1)
      diff-lcs (>= 1.2.0, < 2.0)
      rspec-support (~> 3.9.0)
    rspec-rails (3.9.1)
      actionpack (>= 3.0)
      activesupport (>= 3.0)
      railties (>= 3.0)
      rspec-core (~> 3.9.0)
      rspec-expectations (~> 3.9.0)
      rspec-mocks (~> 3.9.0)
      rspec-support (~> 3.9.0)
    rspec-support (3.9.3)
    ruby_dep (1.5.0)
    rubyzip (2.3.0)
    sass-rails (6.0.0)
      sassc-rails (~> 2.1, >= 2.1.1)
    sassc (2.4.0)
      ffi (~> 1.9)
    sassc-rails (2.1.2)
      railties (>= 4.0.0)
      sassc (>= 2.0)
      sprockets (> 3.0)
      sprockets-rails
      tilt
    selenium-webdriver (3.142.7)
      childprocess (>= 0.5, < 4.0)
      rubyzip (>= 1.2.2)
    slim (4.1.0)
      temple (>= 0.7.6, < 0.9)
      tilt (>= 2.0.6, < 2.1)
    slim-rails (3.2.0)
      actionpack (>= 3.1)
      railties (>= 3.1)
      slim (>= 3.0, < 5.0)
    spring (2.1.1)
    spring-watcher-listen (2.0.1)
      listen (>= 2.7, < 4.0)
      spring (>= 1.2, < 3.0)
    sprockets (4.0.2)
      concurrent-ruby (~> 1.0)
      rack (> 1, < 3)
    sprockets-rails (3.2.2)
      actionpack (>= 4.0)
      activesupport (>= 4.0)
      sprockets (>= 3.0.0)
    temple (0.8.2)
    thor (1.0.1)
    thread_safe (0.3.6)
    tilt (2.0.10)
    turbolinks (5.2.1)
      turbolinks-source (~> 5.2)
    turbolinks-source (5.2.0)
    tzinfo (1.2.7)
      thread_safe (~> 0.1)
    web-console (4.0.4)
      actionview (>= 6.0.0)
      activemodel (>= 6.0.0)
      bindex (>= 0.4.0)
      railties (>= 6.0.0)
    webdrivers (4.4.1)
      nokogiri (~> 1.6)
      rubyzip (>= 1.3.0)
      selenium-webdriver (>= 3.0, < 4.0)
    webpacker (4.3.0)
      activesupport (>= 4.2)
      rack-proxy (>= 0.6.1)
      railties (>= 4.2)
    websocket-driver (0.7.3)
      websocket-extensions (>= 0.1.0)
    websocket-extensions (0.1.5)
    xpath (3.2.0)
      nokogiri (~> 1.8)
    zeitwerk (2.4.0)

PLATFORMS
  ruby

DEPENDENCIES
  bootsnap (>= 1.4.2)
  bootstrap (= 4.5.2)
  byebug
  capybara (>= 2.15)
  enum_help (= 0.0.17)
  html2slim (= 0.2.0)
  jbuilder (~> 2.7)
  listen (>= 3.0.5, < 3.2)
  pg (>= 0.18, < 2.0)
  puma (~> 4.1)
  rails (~> 6.0.1)
  rspec-rails (< 4.0.0)
  sass-rails (>= 6)
  selenium-webdriver
  slim-rails (= 3.2.0)
  spring
  spring-watcher-listen (~> 2.0.0)
  turbolinks (~> 5)
  tzinfo-data
  web-console (>= 3.3.0)
  webdrivers
  webpacker (~> 4.0)

RUBY VERSION
   ruby 2.6.5p114

BUNDLED WITH
   2.1.4

Recommended Posts

Was ist zu tun, wenn Fehler / Fehler: Datei erforderlich.expand_path ('../ config / environment', __dir__) in RSpec angezeigt wird
Was tun, wenn das Erstellen über die Befehlszeile in der Android-Entwicklungsumgebung fehlschlägt?
Was tun, wenn ein ActionController :: UnknownFormat-Fehler auftritt?
Was tun, wenn in bind.pry eine falsche Anzahl von Argumenten angezeigt wird?
Was tun, wenn ein Argumentfehler auftritt? Falsche Anzahl von Argumenten (gegeben 2, erwartete 0) in Ihrem RSpec-Test
[Rails / Vielleicht kann es auf andere Dinge angewendet werden? ] Was tun, wenn Fehler / Fehler __send__ (Methodendatei) rspec nicht ausgeführt werden kann? Eine solche Datei wird beim Ausführen von RSpec angezeigt
Was tun, wenn mysql2 einen Bundle-Installationsfehler erhält?
[Rails] Was tun, wenn Sie versehentlich eine Bundle-Installation in einer Produktionsumgebung in Ihrer lokalen Umgebung durchführen?
Was tun, wenn im Testcode der Steuereinheit in Rails der Fehler "302" angezeigt wird?
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Was tun, wenn beim Versuch, mit Eclipse zu erstellen, ein Fehler in der gemeinsam genutzten JNI-Bibliothek auftritt?
Was tun, wenn Sie eine [HTTP-Anforderung hat zu lange gedauert] Fehler in Docker.
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
Was tun, wenn beim Installieren von Axios in einem React + Typescript-Projekt ein Fehler auftritt?
Was tun, wenn Sie gem'bcrypt 'in Ihre Gemfile eingeben und bei der Bundle-Installation eine Fehlermeldung erhalten?
Was tun, wenn das von refile gepostete Bild nach dem Einstellen der 404-Fehlerseite in Rails verschwindet?
Was tun, wenn Sie in Thymeleaf Layout eine groovige Warnung erhalten?
Fügen Sie gem'rails-i18n ',' ~> 6.0.0 'hinzu und was zu tun ist, wenn die Bundle-Installation einen Fehler anzeigt
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
Was tun, wenn ein Fehler auftritt, wenn nokogiri bei der Bundle-Installation eingeht?
Kein Platz mehr auf dem Gerät Was tun, wenn ein Fehler auftritt?
Was tun, wenn der Tomcat-Prozess bestehen bleibt, wenn Sie Tomcat in Eclipse stoppen?
Was tun, wenn die Befehlszeile zu lang ist? Wird beim Erstellen eines Gradle-Projekts in Intellij IDEA angezeigt
So übersetzen Sie die Fehlermeldung ins Japanische (Was tun, wenn Sie sich aus irgendeinem Grund nicht anmelden können)
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
wildflly10 java8 ERROR [org.jboss.jca.core.tx.jbossts.XAResourceRecoveryImpl] (Periodische Wiederherstellung) IJ000906 Was tun, wenn ein Fehler auftritt?
Was tun, wenn die ffi-Installation beim Starten einer Anwendung in Rails fehlschlägt?
[Java] Was tun, wenn in Eclipse die Fehlermeldung "Nicht zulässig auf Quellenebene unter 1.X" angezeigt wird?
Was tun, wenn der Server-Tomcat stirbt?
Was tun, wenn Sie falsche Informationen eingeben?
Was tun, wenn in PlayFramework eine IllegalStateException auftritt?
Was tun, wenn Sie den Text eines Elements in Selen nicht abrufen können?
Was tun, wenn ein Fehler auftritt (StandardError: Ein Fehler ist aufgetreten, diese und alle späteren Migrationen wurden abgebrochen :) in Rails db: migrate
<Punktinstallation> Was tun, wenn Sie aufgrund eines Fehlers beim Erstellen einer Entwicklungsumgebung für das Rails-Lernen nicht fortfahren können?
Was tun, wenn die Installation des Debug-Gems fehlschlägt?
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Was tun, wenn Sie versehentlich ein Modell erstellen?
Fehler ExecJS :: RuntimeUnavailable: Was tun, wenn es auftritt?
Was tun, wenn bei Verwendung von Liferay 7 / DXP unter AWS ein SAX-Parser-Fehler auftritt?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?