2012-07-12 17 views
7

Wczoraj rozglądałem się za działającym walidatorem HTML, którego mogłem użyć do sprawdzenia kodu wygenerowanego przez moją aplikację rails. Do tej pory wypróbowałem kilka różnych strategii, takich jak RailsTidy, które nie działają już od Rails 1.9, tidy_ffi, które miałem ciężko "wymagać" - podczas pracy w konsoli rails i Total Validator FireFox, co zawsze daje mi ten sam błąd niezależnie od tego, co sprawdzam.Czy są jakieś (lokalne) weryfikatory HTML dla Ruby on Rails, które działają?

Moim celem jest sprawdzenie kodu bez konieczności przesyłania czegokolwiek do internetu. Byłoby bardzo pomocne, aby móc uruchomić testy z terminala (korzystam z systemu RedHat Linux) lub uruchomić testy na działającym serwerze localhost.

Aby zaoszczędzić sobie kolejnego dnia (a może nawet więcej) frustracji, zadałem to pytanie tutaj i chciałbym się dowiedzieć, czy ktoś z powodzeniem pracował z walidatorem dla Ruby on Rails.

+0

Sprawdź to pytanie na StackOverflow: http://stackoverflow.com/questions/1287952/how-do-i-validate-xhtml-with-nokogiri –

+0

Dziękuję Będę tr to. – boka

Odpowiedz

4

Wypróbuj mój klejnot, html_acceptance. Używa HTML Tidy do przeprowadzenia walidacji pod maską. Odsunąłem to jakiś czas temu, ale jak dotąd przeważnie nie zostało to zauważone. Przydało mi się to, a jeśli zgłaszasz problemy/masz prośby o funkcję, z chęcią ich obejrzę.

W próbkach, mam zwyczaj RSpec matcher, więc jeśli dodać, że niestandardowe matcher, w swoich testach integracyjnych w ciemno/wnioski można zrobić:

page.should have_valid_html 

Pomysł jest można go używać w ciągu testy integracyjne, a nawet jeśli otrzymasz drobne ostrzeżenia/niepowodzenia, na które nie masz wpływu (na przykład TIDY narzeka na niektóre hacki związane z IE), możesz wejść, zaakceptować je i tak długo, jak wynik weryfikacji jest stały, test przejdzie następnie.

Musisz również mieć porządek na ścieżce. Tak więc na OS X: port install htmltidy lub Ubuntu sudo apt-get install tidy.

+0

Dodałem trochę więcej o tym, w jaki sposób został użyty do mojej odpowiedzi ... – ebeland

+0

Dołączając do mojego poprzedniego komentarza, wydaje się to niezwykle proste. Czy jest jakaś poważna konfiguracja, o którą muszę się martwić? (Inne niż instalowanie porządku i twój klejnot) – boka

+0

Nie, tylko decydowanie o lokalizacji plików wyników, które mają być przechowywane i tworzenie tego folderu.Zamiast/tmp/validation (na przykładach) mógłbym użyć czegoś, użyj folderu w projekcie w zależności od scenariusza. Aha i nie zapomnij wymagać niestandardowego matchera (w/sample), jeśli używasz tego z RSpec. – ebeland

2

Pracuję nad uniwersalnym klejnotem walidacji HTML/CSS dla aplikacji Ruby On Rails. Jego nazwa to Headhunter.

Od docs:

Headhunter to narzędzie do sprawdzania poprawności kodu HTML i CSS, które wstrzykuje się do swojego Szyny wyposażone testy i automagicznie sprawdza wszystkie swoje wygenerowany kod HTML i CSS dla ważności.

Ponadto wygląda na nieużywane (i dlatego zbyteczne) selektory CSS.

Wszystko co musisz zrobić, to dodać gem 'headhunter' do Gemfile w środowisku testowym:

group :test do 
    gem 'headhunter' 
end 

Reszta to wszystko zrobić automagicznie dla Ciebie, a dostaniesz Statystyka dla validness swojej aplikacji na koniec twoich testów, tak:

Validated 42 HTML pages. 
41 pages are valid. 
1 page is invalid. 
Open .validation/results.html to view full results. 

Validated 1 stylesheets. 
1 stylesheet is invalid. 
    application.css: 
    - Invalid css: line 1: Property bla doesn't exist 

Found 23 CSS selectors. 
20 selectors are in use. 
3 selectors are not in use: a img, #flash.failure, input[type='file']