集成在Selenium中的xHTML标记检查器
-
03-07-2019 - |
题
最近,我想到如何通过在Continuous Integration机器上连续检查xHTML源来提高项目质量。
看,我们有一个项目
http://sourceforge.net/projects/jtidy - jTidy
JTidy是HTML Tidy的Java端口, HTML语法检查器
和漂亮的打印机。
它可以通过命令行界面验证xHTML。或者这个工具可以按我们需要的方式扩展,因为所有的源代码都是开放的。
我们可以覆盖每个Selenium验证方法,例如assertTextPresent或任何其他方法,因此它将调用jTidy(通过提供当前状态的HTML源代码),如果发生某些错误或警告 - 它可以保存为Continuous集成机器构建的日志 - 因此任何项目的相关内容都可以看到此信息。
我们不能重写所有的Selenium方法,在每一步上集成这个调用,但要在我们想要的地方进行调用(在DOM操作之后)。
是的,我们可以为我们的网站使用W3C标记验证器,但是没有任何可能使用此验证器验证页面的初始状态源。页面创建后,可能会有很多DOM操作会产生标记错误/警告 - 我们可以使用此方案立即找到它。
使用持续集成的一个好处是,您可以从代码中快速反馈 - 如何与现有代码库集成,测试单元和功能测试是否通过。为什么不获取其他有用信息,例如即时xHTML标记验证状态。我们越早确定问题,就越容易解决问题。
我还没有在google上找到关于这个主题的任何内容。 想知道,你对这个想法有什么看法?
解决方案
似乎是一个有价值的想法。
我之前用CI做了两件类似的事情:
-
我使用了Ant的 XMLValidate 任务来验证静态xhtml文件作为构建过程的一部分
-
我使用了httpunit来拉取我之后解析为xml的页面
醇>
但是,在功能测试运行期间绑定到Selenium以固有地验证内容的想法对我来说是新颖的。
其他提示
我认为,这个想法很棒,但很难从头开始实施。 但这个想法就像构建/质量验证过程的演变一样,因此有一天它将作为随时可用的工具发布。
好主意! - 事实上我只有完全相同的想法,只是检查一下是否有人之前做过 - 唉!看起来你打败了我:)
我正在考虑捕获并自动将每个被selenium命中的页面提交给w3c HTML和CSS验证器(通过文件而不是链接以保持状态) - 没有任何错误。我喜欢这个简单的想法。
原则上很棒,但我不太确定如何从Selenium调用它。我很乐意看到文档说明如何从Selenese或PHPUnit运行它。