So beheben Sie Fehler, die beim Integrationstest "Ruby on Rails" auftreten

Einführung

Im Integrationstest hat zuvor funktionierender Code einen Fehler ausgelöst. Die Ursache war unerwartet, deshalb habe ich beschlossen, es als Artikel zu belassen (obwohl es kein Memorandum ist).

Fehlerinhalt

Terminal


Failures:

  1)Benutzer Vor der Benutzerregistrierung Können Sie Mitgliedsinformationen eingeben?
     Failure/Error: expect(page).to have_content("Geben Sie die Lieferinformationen ein")

     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)Benutzer Kann sich vor der Benutzerregistrierung nicht anmelden
     Failure/Error: expect(page).to have_content("Klicken Sie hier, wenn Sie kein Konto haben")

     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)Benutzer Vor der Benutzerregistrierung Durch Drücken der Schaltfläche Produktliste gelangen Sie zur Anmeldeseite.
     Failure/Error: expect(page).to have_content("Klicken Sie hier, wenn Sie kein Konto haben")

     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)Benutzer Meine Seite wird in der Kopfzeile angezeigt, wenn Sie sich nach der Benutzerregistrierung anmelden können
     Failure/Error: expect(page).to have_content "Meine Seite"

     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)Benutzer Sie können sich abmelden, nachdem Sie sich als Benutzer registriert haben
     Failure/Error: expect(page).to have_content "Registrierung neuer Mitglieder"

     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)Benutzer Wenn Sie nach der Benutzerregistrierung auf die Schaltfläche Produktliste klicken, werden Sie zur Listenseite weitergeleitet.
     Failure/Error: expect(page).to have_content("Ausstellungsbild")

     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#erstellen kann kein Bild speichern(image)Wenn Sie nicht haben, können Sie sich nicht registrieren
     Failure/Error: expect(item.errors[:images]).to include("Bitte eingeben")
       expected [] to include "Bitte eingeben"
     # ./spec/models/item_spec.rb:33:in `block (4 levels) in <top (required)>'

Lösung

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 => "Dies ist ein Beispiel für die Teamentwicklung! Bitte schau es dir an!", :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 => "Dies ist ein Beispiel für die Teamentwicklung! Bitte schau es dir an!", :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

Zusammenfassung

Selbst im vorherigen Zustand ist als Anwendung kein Fehler aufgetreten, aber im Integrationstest ist ein Fehler aufgetreten.

Der Grund scheint zu sein, dass es in application.html.haml keine Standardverschachtelung gibt. Wenn Sie keine Meta-Tags oder Favicon verschachteln, werden an anderen Stellen Fehler angezeigt. Seien Sie also vorsichtig!

Recommended Posts

So beheben Sie Fehler, die beim Integrationstest "Ruby on Rails" auftreten
So debuggen Sie die Verarbeitung im Ruby on Rails-Modell nur mit der Konsole
[Ruby on Rails] Wie schreibe ich eine Enumeration auf Japanisch?
[Ruby On Rails] So setzen Sie die Datenbank in Heroku zurück
Verwendung von Ruby on Rails
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)
So beheben Sie Fehler, die während der Installation von Rails 5.1.3 auftreten
[Ruby on Rails] Verwendung von redirect_to
Dinge, an die Sie sich erinnern sollten, und Konzepte im Ruby on Rails-Tutorial
So erstellen Sie eine Abfrage mithilfe von Variablen in GraphQL [Verwenden von Ruby on Rails]
So lösen Sie die lokale Umgebungskonstruktion von Ruby on Rails (MAC)!
So erstellen Sie die einfachste Blockchain in Ruby
So überprüfen Sie Rails-Befehle im Terminal
[Ruby on Rails] So melden Sie sich nur mit Ihrem Namen und Passwort mit dem Gem-Gerät an
[Ruby on Rails] Beim ersten Anmelden ・ So teilen Sie den Bildschirm mit jQuery in zwei Hälften
[Ruby on Rails] So machen Sie das Linkziel zu einem Teil der angegebenen ID
[Ruby on Rails] So japanisieren Sie die Fehlermeldung des Formularobjekts (ActiveModel)
So stellen Sie die Anzeigezeit in Rails auf japanische Zeit ein
(Ruby on Rails6) So erstellen Sie ein Modell und eine Tabelle
[Schienen] So zeigen Sie Bilder in der Ansicht an
So beheben Sie den SSL_connect-Fehler im PayPal Ruby SDK
[Ruby] 5 häufige Fehler, die beim Schaben mit Selen auftreten und wie man damit umgeht
[Ruby on Rails] Zeigt den Seitentitel schnell im Browser an
(Ruby on Rails6) Anzeige der Datenbank, die die ID der Datenbank erhalten hat
So rufen Sie den Hashwert in einem Array in Ruby ab
[Hinweis] Über das Fizz_Buzz-Problem (Funktionsweise von Ruby on Rails)
So wechseln Sie Java in der OpenJDK-Ära auf dem Mac
So führen Sie React und Rails auf demselben Server aus
Wenden Sie CSS auf eine bestimmte Ansicht in Ruby on Rails an
[Schienen] Anzeigen von Informationen, die in der Datenbank gespeichert sind
Ruby on Rails 5 - Kurzanleitung zum Lernen, die im Feld Zusammenfassung verwendet werden kann
Wie man in Ruby auf unbestimmte Zeit iteriert
So stellen Sie Bootstrap auf Rails bereit
Ruby on Rails Japanisch-Englisch kompatibler i18n
So installieren Sie Bootstrap in Ruby
So beheben Sie Fehler bei gemischten Inhalten
[Technisches Memo] So beheben Sie Fehler
So installieren Sie jQuery in Rails 6
So installieren Sie Swiper in Rails
[Rails / Routing] So verweisen Sie auf den Controller in Ihrem eigenen Verzeichnis