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
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:
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
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
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