[Ruby on Rails] J'obtiens un avertissement lors de l'exécution de RSpec en raison d'une version différente de gem.

Préface / Edition de points

2020.10.10 J'ai apporté une correction au commentaire.

environnement

Ruby 2.5.7 Rails 5.2.4

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

Contexte

Lorsque j'ai écrit le code de test dans RSpec et l'ai exécuté, j'ai eu l'erreur suivante.

$ 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.

Ce n'était pas exactement une erreur, cela semblait être averti car il y avait plusieurs versions du même joyau et le test lui-même s'est déroulé avec succès. Cependant, je ne peux pas le laisser seul, alors je vais le résoudre.

procédure

Je me suis référé à cet article pour la solution. Qiita --Correspondence when WARN: Effacement des spécifications non résolues. Apparaît dans Ruby gem

Commençons par vérifier la gemme en question.

$ diff-lcs (< 2.0, >= 1.2.0)

Il a été souligné qu'il existe plusieurs versions de la gemme appelée diff-lcs, mais je ne me souviens pas d'avoir installé cette gemme moi-même, donc bien sûr, elle n'est pas mentionnée dans le Gemfile. Ensuite, lors de l'installation d'un gem, le bundler peut l'avoir automatiquement installé en tant que gem dépendant, donc si vous cochez Gemfile.lock, vous pouvez voir que` diff-lcs (1.4) autre que la dépendance gem de rspec. Il y avait .4) ».

Il y a deux gemmes dépendantes installées avec rspec, qui sont toutes deux comme diff-lcs (> = 1.2.0, <2.0), et la version n'est pas écrite, donc la version de cette gemme est la suivante Je vais enquêter avec une commande.

$ gem list -a | grep diff-lcs

diff-lcs (1.4.4, 1.4.2, 1.3)

À la suite de l'enquête, il semble que «(1.4.4, 1.4.2, 1.3)» 3 versions sont installées. Le "diff-lsc (1.4.4)" non dépendant est le dernier de ceux-ci, donc nous allons faire correspondre les deux autres qui dépendent de rspec à cette version.

Une chose à noter ici est que si vous installez une gemme qui dépend du bundler, et si vous changez facilement la version de la gemme dépendante, d'autres gemmes qui en dépendent peuvent mal fonctionner. Dans ce cas, la version de diff-lcs (<2.0,> = 1.2.0), qui dépend de rspec, a été écrite comme "1.2.0 ou plus, moins de 2.0", donc c'est la dernière (en ce moment). J'en suis venu à la conclusion qu'il n'y a pas de problème même si je mets à jour la version 1.4.4.

Ensuite, exécutez la commande écrite sur le site de référence.

$ gem cleanup

Et

$ bundle install

Le texte d'avertissement a maintenant disparu.

Procédure (si la dépendance nécessite plusieurs versions du gem)

Je vais extraire de ce commentaire.

$ bundle exec rspec (Spécification du fichier d'exécution)

Lorsque vous le faites, le bundler reconnaîtra automatiquement les dépendances décrites dans le Gemfile.

Lorsque la dépendance devient compliquée et que plusieurs versions sont absolument nécessaires, cette méthode est le seul moyen car elle ne peut pas être combinée dans la dernière version mentionnée ci-dessus.

Résumé

Dans mon cas, il y avait un autre message d'avertissement, alors veuillez lire l'article suivant à ce sujet ヽ (; ▽ ;) ノ Qiita- [Ruby on Rails] Je reçois un avertissement lors de l'exécution de RSpec car gem'chromedriver-helper 'est obsolète.

Si vous avez des questions, des différences d'interprétation ou si vous pensez que quelque chose ne va pas avec la méthode de description, nous vous serions reconnaissants de bien vouloir le signaler dans les commentaires.

Merci d'avoir lu jusqu'au bout.

Site de référence

J'ai publié le fichier que j'utilise actuellement sur mon GitHub, alors j'espère que vous pourrez vous y référer également! GitHub - MasaoSasaki/matchi

Autre Qiita --Correspondence when WARN: Effacement des spécifications non résolues. Apparaît dans Ruby gem YoheiIsokawa- [Rails] Comment écrire la spécification de version de Gemfile

Recommended Posts

[Ruby on Rails] J'obtiens un avertissement lors de l'exécution de RSpec en raison d'une version différente de gem.
[Ruby on Rails] J'obtiens un avertissement lors de l'exécution de RSpec car gem'chromedriver-helper 'est obsolète.
J'obtiens une erreur de version de Ruby lorsque j'essaye de démarrer Rails.
Présentation de Rspec, un framework de test pour Ruby on Rails
J'ai fait un portfolio avec Ruby On Rails
[Introduction] Créer une application Ruby on Rails
Ce à quoi j'étais accro en utilisant rspec sur des rails
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
[Ruby on Rails] Restrictions de colonne lors de l'enregistrement dans DB (4 représentants)
Appliquer le CSS à une vue spécifique dans Ruby on Rails
Une note quand j'étais accro à la conversion d'Ubuntu sur WSL1 en WSL2
Étapes pour créer un environnement de développement Ruby on Rails avec Vagrant
(Ruby on Rails6) Créer une fonction pour modifier le contenu publié
Tutoriel Rails Lorsque les rails neufs ne peuvent pas être réalisés en raison de versions différentes
Comment utiliser Ruby on Rails
Passer de SQLite3 à PostgreSQL dans un nouveau projet Ruby on Rails
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Que faire lorsque l'hôte bloqué: "nom d'hôte" apparaît dans Ruby on Rails
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 6.x)
Comment créer un environnement de développement Ruby on Rails avec Docker (Rails 5.x)
Que faire lorsque "call'Hoge.connection 'pour établir une connexion" apparaît sur les rails c
[Rails] Que faire si vous obtenez une erreur indiquant "Impossible de trouver un moteur d'exécution JavaScript." Lors de l'exécution de la commande rails dans Catalina
[Ruby on Rails] Afficher le test avec RSpec
[Ruby on Rails] Test du contrôleur avec RSpec
Déployer sur Heroku [Ruby on Rails] Débutant
Préparation à l'introduction de jQuery dans Ruby on Rails
[Ruby on Rails] Comment utiliser redirect_to
[Ruby on Rails] Test de modèle avec RSpec
Bouton [Ruby on Rails] pour revenir en haut
[Première construction d'environnement] J'ai essayé de créer un environnement Rails6 + MySQL8.0 + Docker sur Windows 10.
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
[Ruby on Rails] Essayez de créer un service qui rend heureux les chats locaux
J'ai réussi à obtenir un blanc lorsque j'ai apporté le contenu de Beans dans la zone de texte
Déployer sur Ruby on Rails Elastic beanstalk (déploiement EB)
[Rails] Comment écrire lors de la création d'une sous-requête
[Ruby on Rails] Jusqu'à l'introduction de RSpec
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
Présentation de Rspec avec Ruby on Rails x Docker
Quand le terminal Ruby on Rails revient en arrière
J'obtiens une erreur lors de l'ajout d'une dépendance
[Ruby] Je veux faire un saut de méthode!
[Ruby on Rails] Un mémorandum de modèles de mise en page
(Ruby on Rails6) Création de données dans une table
Les débutants de Rails ont essayé de se lancer avec RSpec
Je veux obtenir la valeur en Ruby