Comment résoudre les erreurs qui se produisent lors du test d'intégration "Ruby on Rails"

introduction

Dans le test d'intégration, le code qui fonctionnait auparavant générait une erreur. La cause était inattendue, j'ai donc décidé de le laisser sous forme d'article (bien que ce ne soit pas un mémorandum)

contenu de l'erreur

Terminal


Failures:

  1)utilisateur Avant l'enregistrement de l'utilisateur Pouvez-vous saisir les informations relatives aux membres?
     Failure/Error: expect(page).to have_content("Entrez les informations de livraison")

     Capybara::Ambiguous:
       Ambiguous match, found 2 elements matching visible xpath "/html"
     # ./spec/features/user_spec.rb:20:in `block (3 levels) in <top (required)>'

  2)l'utilisateur ne peut pas se connecter avant l'enregistrement de l'utilisateur
     Failure/Error: expect(page).to have_content("Cliquez ici si vous n'avez pas de compte")

     Capybara::Ambiguous:
       Ambiguous match, found 2 elements matching visible xpath "/html"
     # ./spec/features/user_spec.rb:29:in `block (3 levels) in <top (required)>'

  3)utilisateur Avant l'enregistrement de l'utilisateur Appuyez sur le bouton Liste des produits pour accéder à la page de connexion.
     Failure/Error: expect(page).to have_content("Cliquez ici si vous n'avez pas de compte")

     Capybara::Ambiguous:
       Ambiguous match, found 2 elements matching visible xpath "/html"
     # ./spec/features/user_spec.rb:35:in `block (3 levels) in <top (required)>'

  4)utilisateur Ma page s'affiche dans l'en-tête si vous pouvez vous connecter après l'enregistrement de l'utilisateur
     Failure/Error: expect(page).to have_content "Ma page"

     Capybara::Ambiguous:
       Ambiguous match, found 2 elements matching visible xpath "/html"
     # ./spec/features/user_spec.rb:50:in `block (3 levels) in <top (required)>'

  5)utilisateur Vous pouvez vous déconnecter après vous être enregistré en tant qu'utilisateur
     Failure/Error: expect(page).to have_content "Inscription des nouveaux membres"

     Capybara::Ambiguous:
       Ambiguous match, found 2 elements matching visible xpath "/html"
     # ./spec/features/user_spec.rb:56:in `block (3 levels) in <top (required)>'

  6)utilisateur Si vous appuyez sur le bouton de liste de produits après l'enregistrement de l'utilisateur, vous serez redirigé vers la page de liste.
     Failure/Error: expect(page).to have_content("Image de l'exposition")

     Capybara::Ambiguous:
       Ambiguous match, found 2 elements matching visible xpath "/html"
     # ./spec/features/user_spec.rb:61:in `block (3 levels) in <top (required)>'

  7) Item#créer ne peut pas enregistrer l'image(image)Si vous ne l'avez pas, vous ne pouvez pas vous inscrire
     Failure/Error: expect(item.errors[:images]).to include("Entrez s'il vous plait")
       expected [] to include "Entrez s'il vous plait"
     # ./spec/models/item_spec.rb:33:in `block (4 levels) in <top (required)>'

Solution

before

haml:application.html.haml


!!!
%html
%head
%meta{content: "text/html; charset=UTF-8", "http-equiv": "Content-Type"}/
%title FreemarketSample68d
%script{src: "https://js.pay.jp/", type: "text/javascript"}
%meta{:content => "summary_large_image", :name => "twitter:card"}/
%meta{:content => "@yGZqMc5IqNbVsw0", :name => "twitter:site"}/
%meta{:content => "http://52.198.247.0/", :property => "og:url"}/
%meta{:content => "freemarket_sample", :property => "og:title"}/
%meta{:content => "Ceci est un exemple pour le développement d'équipe! S'il vous plaît, jetez un oeil!", :property => "og:description"}/
%meta{:content => "logo-white.png ", :property => "og:image"}/
= favicon_link_tag 'favicon.ico'
= csrf_meta_tags
= csp_meta_tag
= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
  %body
  = yield

after

haml:application.html.haml


!!!
%html
  %head
    %meta{content: "text/html; charset=UTF-8", "http-equiv": "Content-Type"}/
    %title FreemarketSample68d
    %script{src: "https://js.pay.jp/", type: "text/javascript"}
    %meta{:content => "summary_large_image", :name => "twitter:card"}/
    %meta{:content => "@yGZqMc5IqNbVsw0", :name => "twitter:site"}/
    %meta{:content => "http://52.198.247.0/", :property => "og:url"}/
    %meta{:content => "freemarket_sample", :property => "og:title"}/
    %meta{:content => "Ceci est un exemple pour le développement d'équipe! S'il vous plaît, jetez un oeil!", :property => "og:description"}/
    %meta{:content => "logo-white.png ", :property => "og:image"}/
    = favicon_link_tag 'favicon.ico'
    = csrf_meta_tags
    = csp_meta_tag
    = stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload'
    = javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
  %body
    = yield

Résumé

Même dans l'état précédent, une erreur ne s'est pas produite en tant qu'application, mais une erreur s'est produite lors du test d'intégration.

La raison semble être qu'il n'y a pas d'imbrication par défaut dans application.html.haml. Si vous n'imbriquez pas de balises meta ou de favicon, vous obtiendrez des erreurs à d'autres endroits, alors soyez prudent!

Recommended Posts

Comment résoudre les erreurs qui se produisent lors du test d'intégration "Ruby on Rails"
Comment déboguer le traitement dans le modèle Ruby on Rails avec juste la console
[Ruby on Rails] Comment écrire enum en japonais
[Ruby On Rails] Comment réinitialiser DB dans Heroku
Comment utiliser Ruby on Rails
Comment afficher des graphiques dans Ruby on Rails (LazyHighChart)
Comment résoudre les erreurs qui se produisent lors de l'installation de Rails 5.1.3
[Ruby on Rails] Comment utiliser redirect_to
Points à retenir et concepts dans le didacticiel Ruby on Rails
Comment créer une requête à l'aide de variables dans GraphQL [Utilisation de Ruby on Rails]
Comment résoudre la construction de l'environnement local de Ruby on Rails (MAC)!
Comment créer la blockchain la plus simple de Ruby
Comment vérifier les commandes Rails dans le terminal
[Ruby on Rails] Comment se connecter avec seulement votre nom et mot de passe en utilisant le bijou
[Ruby on Rails] Lors de la première connexion ・ Comment diviser l'écran en deux à l'aide de jQuery
[Ruby on Rails] Comment faire de la destination du lien une partie de l'ID spécifié
[Ruby on Rails] Comment japonaisiser le message d'erreur de l'objet Form (ActiveModel)
Comment régler l'heure d'affichage sur l'heure japonaise dans les rails
(Ruby on Rails6) Comment créer un modèle et une table
[Rails] Comment afficher les images dans la vue
Comment résoudre l'erreur SSL_connect dans le SDK PayPal Ruby
[Ruby] 5 erreurs courantes qui ont tendance à se produire lors du scraping avec Selenium et comment les gérer
[Ruby on Rails] Afficher rapidement le titre de la page dans le navigateur
(Ruby on Rails6) Affichage de la base de données qui a obtenu l'identifiant de la base de données
Comment récupérer la valeur de hachage dans un tableau dans Ruby
[Note] À propos du problème Fizz_Buzz (Fonctionnement de Ruby on Rails)
Comment changer Java à l'ère d'OpenJDK sur Mac
Comment exécuter React et Rails sur le même serveur
Appliquer le CSS à une vue spécifique dans Ruby on Rails
[Rails] Comment afficher les informations stockées dans la base de données dans la vue
Ruby on Rails 5 guide pratique d'apprentissage rapide qui peut être utilisé sur le terrain Résumé
Comment itérer indéfiniment en Ruby
Comment déployer Bootstrap sur Rails
Ruby on Rails compatible japonais-anglais i18n
Comment installer Bootstrap dans Ruby
Comment résoudre les erreurs de contenu mixte
[Note technique] Comment résoudre les erreurs
Comment installer jQuery dans Rails 6
Comment installer Swiper in Rails
[Rails / Routing] Comment faire référence au contrôleur dans votre propre répertoire