2020.10.10 Ich habe den Kommentar korrigiert.
Ruby 2.5.7 Rails 5.2.4
gem gem 'rspec-rails', '~> 3.6'
Als ich den Testcode in RSpec schrieb und ausführte, wurde der folgende Fehler angezeigt.
$ rspec spec/models/tag_spec.rb
WARN: Unresolved specs during Gem::Specification.reset:
diff-lcs (< 2.0, >= 1.2.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
Es war nicht gerade ein Fehler, es schien mich zu warnen, dass es mehrere Versionen desselben Edelsteins gab und der Test selbst erfolgreich lief. Ich kann es jedoch nicht alleine lassen, also werde ich es lösen.
Ich habe auf diesen Artikel für die Lösung verwiesen. Qiita - Was ist zu tun, wenn WARNUNG: Ungelöste Spezifikationen werden gelöscht. Erscheint auf Ruby Gem
Lassen Sie uns zuerst den fraglichen Edelstein überprüfen.
$ diff-lcs (< 2.0, >= 1.2.0)
Es wurde darauf hingewiesen, dass es mehrere Versionen des Edelsteins namens "diff-lcs" gibt, aber ich erinnere mich nicht daran, diesen Edelstein selbst installiert zu haben, daher wird er natürlich nicht in der Gem-Datei erwähnt. Wenn Sie einen Edelstein installieren, hat der Bundler ihn möglicherweise automatisch als abhängigen Edelstein installiert. Wenn Sie also "Gemfile.lock" aktivieren, sehen Sie, dass "diff-lcs (1.4)" nicht die Edelsteinabhängigkeit von rspec ist. Es gab .4) `.
Mit rspec sind zwei abhängige Gems installiert, die beide wie "diff-lcs (> = 1.2.0, <2.0)" sind, und die Version ist nicht geschrieben, daher ist die Version dieses Gems die nächste Ich werde mit einem Befehl untersuchen.
$ gem list -a | grep diff-lcs
diff-lcs (1.4.4, 1.4.2, 1.3)
Als Ergebnis der Untersuchung scheinen "(1.4.4, 1.4.2, 1.3)" 3 Versionen installiert zu sein.
Das nicht abhängige diff-lsc (1.4.4)
ist das neueste davon, daher werden wir die beiden anderen, die von rspec abhängen, mit dieser Version abgleichen.
Wenn Sie einen Edelstein installieren, der vom Bundler abhängt, und wenn Sie die Version des abhängigen Edelsteins leicht ändern, können andere Edelsteine, die davon abhängig sind, eine Fehlfunktion aufweisen. In diesem Fall wurde die Version von "diff-lcs (<2.0,> = 1.2.0)", die von rspec abhängt, als "1.2.0 oder mehr, weniger als 2.0" geschrieben, daher ist sie die neueste (in dieser Zeit). Ich bin zu dem Schluss gekommen, dass es kein Problem gibt, auch wenn ich die Version 1.4.4 aktualisiere.
Führen Sie als Nächstes den auf der Referenzsite geschriebenen Befehl aus.
$ gem cleanup
Und
$ bundle install
Der Warnungstext ist jetzt verschwunden.
Ich werde aus diesem Kommentar einen Auszug ziehen.
$ bundle exec rspec (Spezifikation der Ausführungsdatei)
Wenn Sie dies tun, erkennt der Bundler automatisch die in der Gemfile beschriebenen Abhängigkeiten.
Wenn die Abhängigkeit kompliziert wird und mehrere Versionen unbedingt erforderlich sind, ist diese Methode die einzige Methode, da sie nicht in der oben genannten neuesten Version kombiniert werden kann.
In meinem Fall gab es eine weitere Warnmeldung. Weitere Informationen finden Sie im nächsten Artikel ヽ (; ▽ ;) ノ Qiita- [Ruby on Rails] Beim Ausführen von RSpec wird eine Warnung angezeigt, da gem'chromedriver-helper 'veraltet ist.
Wenn Sie Fragen haben, unterschiedliche Interpretationen haben oder wenn Sie der Meinung sind, dass etwas mit der Beschreibungsmethode nicht stimmt, würden wir uns freuen, wenn Sie in den Kommentaren darauf hinweisen könnten.
Vielen Dank für das Lesen bis zum Ende.
Ich habe die Datei, die ich tatsächlich verwende, auf meinem GitHub veröffentlicht, also hoffe ich, dass Sie auch darauf verweisen können! GitHub - MasaoSasaki/matchi
Andere Qiita - Korrespondenz bei WARNUNG: Löschen ungelöster Spezifikationen. Erscheint in Ruby Gem YoheiIsokawa- [Rails] Wie schreibe ich eine Gemfile-Versionsspezifikation?
Recommended Posts