Je travaille sur ruby.railstorial.org/Ruby-on-Rails-Tutorial. Im utilisant des rails 3.2.7, SPORK, RSPEC, Capybara, Lancky et quelques gardes :)
J'ai un problème vraiment étrange au chapitre 3 avec tests: p>
Il semble que les tests ne fonctionnent pas pour quoi est à l'intérieur du S'il vous plaît aidez-moi figur out. p> L'exemple est de: ruby.railstorial.org/chapters/static-pages#Code:Title_TEST: P>
code> -tags au-dessus du
> Run all
Bundle already up-to-date
Running all specs
Running tests with args ["--drb", "--colour", "-f", "progress", "-r", "/home/faruk/.rvm/gems/ruby-1.9.3-p125/gems/guard-rspec-1.2.0/lib/guard/rspec/formatters/notification_rspec.rb", "-f", "Guard::RSpec::Formatter::NotificationRSpec", "--out", "/dev/null", "--failure-exit-code", "2", "spec"]...
..FFF.....Neues Fenster in aktueller Browsersitzung erstellt.
.FF..
Failures:
1) Static pages Home page having application layout should have_selector head title 'Home'
Failure/Error: page.should have_selector('head title',
Capybara::ExpectationNotMet:
expected to find css "head title" with text "Ruby on Rails Tutorial Sample App | Home" but there were no matches. Also found "", which matched the selector but not all filters.
# ./spec/requests/static_pages_spec.rb:23:in `block (3 levels) in <top (required)>'
2) Static pages Home page having application layout should have content 'Home'
Failure/Error: page.should have_content("Ruby on Rails Tutorial Sample App | Home")
expected there to be text "Ruby on Rails Tutorial Sample App | Home" in "Sample App This is the home page for the Ruby on Rails Tutorial sample application"
# ./spec/requests/static_pages_spec.rb:30:in `block (3 levels) in <top (required)>'
3) Static pages Home page having application layout should have css title 'Home'
Failure/Error: page.should have_css("title", :text => "Ruby on Rails Tutorial Sample App | Home")
Capybara::ExpectationNotMet:
expected to find css "title" with text "Ruby on Rails Tutorial Sample App | Home" but there were no matches. Also found "", which matched the selector but not all filters.
# ./spec/requests/static_pages_spec.rb:36:in `block (3 levels) in <top (required)>'
4) Static pages about page with own layout should JUST have_selector head title
Failure/Error: page.should have_selector('head title')
Capybara::ExpectationNotMet:
expected to find css "head title" but there were no matches
# ./spec/requests/static_pages_spec.rb:86:in `block (3 levels) in <top (required)>'
5) Static pages about page with own layout should have_selector head title 'About Us'
Failure/Error: page.should have_selector('head title',
Capybara::ExpectationNotMet:
expected to find css "head title" with text "Ruby on Rails Tutorial Sample App | About Us" but there were no matches
# ./spec/requests/static_pages_spec.rb:93:in `block (3 levels) in <top (required)>'
Finished in 0.66215 seconds
15 examples, 5 failures
Failed examples:
rspec ./spec/requests/static_pages_spec.rb:20 # Static pages Home page having application layout should have_selector head title 'Home'
rspec ./spec/requests/static_pages_spec.rb:27 # Static pages Home page having application layout should have content 'Home'
rspec ./spec/requests/static_pages_spec.rb:33 # Static pages Home page having application layout should have css title 'Home'
rspec ./spec/requests/static_pages_spec.rb:83 # Static pages about page with own layout should JUST have_selector head title
rspec ./spec/requests/static_pages_spec.rb:90 # Static pages about page with own layout should have_selector head title 'About Us'
Done.
> Neues Fenster in aktueller Browsersitzung erstellt.
Neues Fenster in aktueller Browsersitzung erstellt.
6 Réponses :
Pouvez-vous tester avec ceci:
Juste pour tester pouvez-vous essayer ceci: page.should avoir_content ("Ruby On Rails Tutorial Sample Sample App | Accueil")
J'ai essayé, mais ne fonctionne toujours pas. Et encore une fois si je mets le texte à l'intérieur des balises corporelles, cela fonctionne.
essayez page.head.should have_content ("Ruby On Rails Tutorial Sample App | Accueil")
Essayez ceci: page.should have_css ("titre",: text => "Ruby on Rails Tutorial Sample Extemple App | Accueil")
Toujours pas de chance, veuillez regarder mon édition. BTW: thx pour aider :)
Désolé mais je n'ai plus d'idées. Soumettre un problème ici: Github.com/jnicklas/capybara .
Le problème soumis peut être vu ici: github.com/jnicklas/capybara/issues/769
Je viens de vérifier votre projet sur Github et il semble que vous utilisiez la version de bord de Capybara:
gemfile p> gemfile.lock p> GIT
remote: git://github.com/jnicklas/capybara.git
revision: e561d249555195cdd0e9251246fc75aae876f833
specs:
capybara (2.0.0.beta2)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 1.0.0.beta1)
Pour le moment, le moyen le plus simple de le faire consiste à accéder à l'élément de titre à partir de la page HTML, cela retournera le titre:
page_title(page).should eq( "Ruby on Rails Tutorial Sample App | Home" }
Ceci est nouveau pour moi aussi après l'avoir laissé tomber depuis si longtemps.
Grâce à Stackoverflow, j'ai pu résoudre certains tests avec Render_Views en haut du fichier de spécification juste après la description.
Je reçois des tests de passage de mais sans utiliser la mise en page, je reçois cette erreur pour: Texte
Capybara :: attenteNotmet:
Attendu à trouver CSS "Titre" avec texte "Accueil | Ruby On Rails Tutorial Sample Sample App" Mais il n'y avait pas de matchs.
Mais à part cela après l'utilisation de GEM 'Capybara', '1.1.2' dans le fichier GEM
Mes tests passent. Mais j'utilise aussi obtenir "la maison" comme cela dans les itinéraires en tant que match d'action.
J'espère que cela vous aidera. P> p>
Si vous utilisez Capybara 2, vous pouvez utiliser la méthode dre_title code> comme ceci: p>
page.should have_title ("Ruby on Rails Tutorial Sample App | Accueil") Code> P>
C'est juste parce que Utilisation de cela, résolu mon problème: P>
page.should have_selector 'title', :visible => false
Merci beaucoup pour expliquer ce problème. Voici un exemple d'utilisation de la même chose, à l'aide d'un sélecteur CSS: page.should have_css ('Head img [src = " d.adroll.com/cm/f/out "] ', visible: faux)
Avez-vous enregistré vos fichiers?
oui bien sûr, j'ai aussi utilisé save_and_open_page afin que je puisse voir les modifications.
Il semble que vous ne puissiez pas interroger l'élément de Capybara 2.0, discussion sur la fixation ici ici Github .Com / Jnicklas / Capybara / Problèmes / 844