[Ruby on Rails] Beim Ausführen von RSpec wird aufgrund einer anderen Gem-Version eine Warnung angezeigt.

Vorwort / Punkte bearbeiten

2020.10.10 Ich habe den Kommentar korrigiert.

Umgebung

Ruby 2.5.7 Rails 5.2.4

gem gem 'rspec-rails', '~> 3.6'

Hintergrund

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.

Verfahren

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.

Prozedur (wenn die Abhängigkeit mehrere Versionen des Edelsteins erfordert)

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.

Zusammenfassung

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.

Referenzseite

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

[Ruby on Rails] Beim Ausführen von RSpec wird aufgrund einer anderen Gem-Version eine Warnung angezeigt.
[Ruby on Rails] Beim Ausführen von RSpec wird eine Warnung angezeigt, da gem'chromedriver-helper 'veraltet ist.
Ich erhalte einen Ruby-Versionsfehler, wenn ich versuche, Rails zu starten.
Einführung in Rspec, ein Testframework für Ruby on Rails
Ich habe mit Ruby On Rails ein Portfolio erstellt
[Einführung] Erstellen Sie eine Ruby on Rails-Anwendung
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
[Ruby on Rails] Spaltenbeschränkungen beim Speichern in der Datenbank (4 Vertreter)
Wenden Sie CSS auf eine bestimmte Ansicht in Ruby on Rails an
Ein Hinweis, als ich süchtig danach war, Ubuntu auf WSL1 in WSL2 zu konvertieren
Schritte zum Erstellen einer Ruby on Rails-Entwicklungsumgebung mit Vagrant
(Ruby on Rails6) Erstellen Sie eine Funktion zum Bearbeiten des veröffentlichten Inhalts
Rails-Tutorial Wenn Rails aufgrund unterschiedlicher Versionen nicht neu erstellt werden können
Verwendung von Ruby on Rails
Wechseln Sie in einem neuen Ruby on Rails-Projekt von SQLite3 zu PostgreSQL
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
Was tun, wenn blockierter Host: "Hostname" in Ruby on Rails angezeigt wird
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 6.x)
So erstellen Sie eine Ruby on Rails-Entwicklungsumgebung mit Docker (Rails 5.x)
Was ist zu tun, wenn auf den Schienen cHoge.connection aufruft, um eine Verbindung herzustellen? C.
[Rails] Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden?" Angezeigt wird, wenn der Befehl "Rails" in Catalina ausgeführt wird
[Ruby on Rails] Test mit RSpec anzeigen
[Ruby on Rails] Controller-Test mit RSpec
Bereitstellen für Heroku [Ruby on Rails] Anfänger
Vorbereiten der Einführung von jQuery in Ruby on Rails
[Ruby on Rails] Verwendung von redirect_to
[Ruby on Rails] Modelltest mit RSpec
[Ruby on Rails] Schaltfläche, um nach oben zurückzukehren
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
Was ich versucht habe, als ich alle Felder einer Bohne bekommen wollte
[Ruby on Rails] Versuchen Sie, einen Service zu erstellen, der einheimische Katzen glücklich macht
Ich habe es geschafft, ein Leerzeichen zu bekommen, als ich den Inhalt von Beans in den Textbereich gebracht habe
Bereitstellung auf Ruby on Rails Elastic Beanstalk (EB-Bereitstellung)
[Rails] Wie schreibe ich, wenn ich eine Unterabfrage mache?
[Ruby on Rails] Bis zur Einführung von RSpec
[Rails] Ich habe versucht, die Version von Rails von 5.0 auf 5.2 zu erhöhen
Einführung in Rspec mit Ruby on Rails x Docker
Wenn das Ruby on Rails-Terminal zurückrollt
Beim Hinzufügen einer Abhängigkeit wird eine Fehlermeldung angezeigt
[Ruby] Ich möchte einen Methodensprung machen!
[Ruby on Rails] Ein Memorandum mit Layoutvorlagen
(Ruby on Rails6) Erstellen von Daten in einer Tabelle
Rails-Anfänger haben versucht, mit RSpec zu beginnen
Ich möchte den Wert in Ruby erhalten