是否有适用于Ruby on Rails的任何(本地)HTML验证器?

时间:2012-07-12 18:51:43

标签: ruby-on-rails local html-validation

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

我的目标是检查我的代码,而不必将任何内容上传到互联网。能够从终端运行测试(我正在使用RedHat Linux)或在正在运行的localhost服务器上运行测试将是最有帮助的。

为了节省自己另一天(或者更多)的挫败感,我在这里提出了这个问题,我想知道是否有其他人成功使用过Ruby on Rails的验证器。

2 个答案:

答案 0 :(得分:4)

试试我的宝石,html_acceptance。它使用HTML Tidy在引擎盖下进行验证。我刚才说出来了,但到目前为止它大部分时间都没有引起注意。它对我很有用,如果您报告问题/有功能请求,我会很乐意看到它们。

在示例中,我有一个自定义RSpec匹配器,因此如果您添加该自定义匹配器,则可以在规范/请求中进行集成测试:

page.should have_valid_html

这个想法是你可以在集成测试中使用它,即使你得到你不关心的小警告/失败(例如,TIDY抱怨一些IE特定的黑客攻击),你可以进入,接受它们,只要验证结果不变,测试就会通过。

另外,你需要在路径上保持整洁。所以在OS X:port install htmltidy或Ubuntu sudo apt-get install tidy。

答案 1 :(得分:2)

我正在为Ruby On Rails应用程序开发一个多合一的HTML / CSS验证gem。它的名字是Headhunter

来自文档:

  

Headhunter是一个HTML和CSS验证工具,可以将自己注入到Rails功能测试中,并自动检查所有生成的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']