Ruby on rails RubyonRails是否有任何(本地)HTML验证程序可以工作?

Ruby on rails RubyonRails是否有任何(本地)HTML验证程序可以工作?,ruby-on-rails,local,html-validation,Ruby On Rails,Local,Html Validation,我昨天一整天都在寻找一个可以工作的HTML验证器,我可以用它检查rails应用程序生成的代码。到目前为止,我已经尝试了几种不同的策略,比如RailsTidy,它不再适用于Rails 1.9,tidy_ffi,我在Rails控制台中运行时很难“要求”tidy_ffi,以及FireFox的Total Validator,无论我检查什么,它总是给我相同的错误 我的目标是检查我的代码,而不必上传任何东西到互联网上。能够从终端运行测试(我使用的是RedHat Linux)或在运行的本地主机服务器上运行测试

我昨天一整天都在寻找一个可以工作的HTML验证器,我可以用它检查rails应用程序生成的代码。到目前为止,我已经尝试了几种不同的策略,比如RailsTidy,它不再适用于Rails 1.9,tidy_ffi,我在Rails控制台中运行时很难“要求”tidy_ffi,以及FireFox的Total Validator,无论我检查什么,它总是给我相同的错误

我的目标是检查我的代码,而不必上传任何东西到互联网上。能够从终端运行测试(我使用的是RedHat Linux)或在运行的本地主机服务器上运行测试将非常有帮助

为了省去一天(或者更多)的挫折,我把这个问题带到这里,我想知道是否有其他人成功地使用了Ruby on Rails的验证器。

试试我的gem。它使用HTML Tidy在引擎盖下进行验证。我不久前就把它放出来了,但到目前为止,它几乎没有被注意到。它对我很有用,如果你报告问题/有功能请求,我会很高兴地查看它们

在示例中,我有一个自定义RSpec匹配器,因此如果您添加该自定义匹配器,在spec/请求中的集成测试中,您可以执行以下操作:

page.should have_valid_html
其思想是,您可以在集成测试中使用它,即使您收到不关心的小警告/失败(例如,TIDY抱怨某些特定于IE的黑客),您也可以进去接受它们,只要验证结果不变,测试就会通过


此外,你需要在道路上保持整洁。因此,在OSX上:端口安装htmlidy或Ubuntu sudo apt get install tidy。

我正在为Ruby on Rails应用开发一款集HTML/CSS验证功能于一体的gem。它的名字是

从文档中:

Headhunter是一个HTML和CSS验证工具,它将自己注入Rails功能测试中,并自动检查生成的所有HTML和CSS的有效性

此外,它还查找未使用(因此是多余的)CSS选择器

您只需在测试环境中将
gem'headhunter'
添加到gem文件中:

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

检查一下StackOverflow上的这个问题:谢谢,我会尝试一下。在我的回答中添加了更多关于如何使用它的信息……在我之前的评论之后,这看起来非常简单。有什么主要的设置需要我担心吗?(除了安装tidy和gem)不,只是决定结果文件的存储位置并创建该文件夹。与/tmp/validation(根据示例)不同,我可能会在项目中使用一些东西,并根据场景使用文件夹。哦,如果您与RSpec一起使用,请不要忘记需要自定义匹配器(在/samples中)。关于您的自定义匹配器,我会使用“require”来加载它吗?它似乎不起作用,`require':无法加载这样的文件--html\u acceptance/samples(LoadError)我将html\u acceptance重新制作成html\u验证,并对其进行了一些改进。可从以下网址获得: