2012-07-12 32 views
7

我昨天看了一下整個工作的HTML驗證器,我可以用它來檢查我的rails應用程序生成的代碼。到目前爲止,我已經嘗試了幾種不同的策略,比如RailsTidy,它不再像Rails 1.9那樣工作,tidy_ffi,我在Rail控制檯中運行時遇到了「需要」的困難時期,以及FireFox的Total Validator,無論我在檢查什麼,總會給我同樣的錯誤。Ruby on Rails中是否有任何(本地)HTML驗證器可用?

我的目標是檢查我的代碼,而不必上傳任何東西到互聯網。能夠從終端運行測試(我正在使用RedHat Linux)或在運行中的本地主機服務器上運行測試將是最有幫助的。

爲了節省我自己的一天(或者更多)的挫折感,我在這裏提出了這個問題,我想知道是否有其他人成功地使用了Ruby on Rails的驗證器。

+0

退房StackOverflow上這個問題:http://stackoverflow.com/questions/1287952/how-do-i-validate-xhtml-with-nokogiri – 2012-07-12 19:45:15

+0

謝謝我會tr這個出來。 – boka 2012-07-12 19:53:04

回答

4

嘗試我的寶石,html_acceptance。它使用HTML Tidy在引擎蓋下進行驗證。我前一陣子把它解決了,但到目前爲止,它大多沒有被注意到。這對我很有用,如果你報告問題/有功能請求,我會很樂意看看他們。

在該樣品中,我有一個自定義的RSpec匹配,因此,如果您添加自定義的匹配,在集成測試中規格/要求,你可以這樣做:

page.should have_valid_html 

的想法是,你可以在使用它集成測試,即使您遇到不關心的小警告/失敗(例如,TIDY抱怨某些IE特定的黑客行爲),您可以進入,接受它們,只要驗證結果不變,測試將通過。

另外,您需要清理路徑。因此,在OS X上:端口安裝htmltidy或Ubuntu sudo apt-get install tidy。

+0

增加了一些關於它是如何用於我的答案... – ebeland 2012-07-12 20:28:00

+0

追加到我以前的評論,這似乎非常簡單。 有沒有需要擔心的主要設置? (除了安裝整潔和你的寶石) – boka 2012-07-12 20:55:55

+0

不,只是決定存儲結果文件的位置並創建該文件夾。(而不是/ tmp/validation)(根據示例),我可能會根據場景使用項目中的某個文件夾。哦,不要忘記需要自定義匹配器(在/ samples中),如果你在RSpec中使用它。 – ebeland 2012-07-12 21:06:23

2

我正在爲Ruby On Rails應用程序開發全功能HTML/CSS驗證gem。它的名字是Headhunter

從文檔:

獵頭者是自身注入到你的Rails功能測試,並自動檢查你的所有生成的HTML和CSS的有效性的HTML和CSS驗證工具。

此外,它還尋找未使用(因此多餘)的CSS選擇器。

所有您需要做的就是添加gem 'headhunter'到您的Gemfile在測試環境:

group :test do 
    gem 'headhunter' 
end 

其餘的是自動的爲你所有做的,你會得到你的應用程序在區分有效性統計你的測試結束,像這樣:

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']