2

最近,我在思考如何通过在持续集成机器上使用持续检查 xHTML 源代码来提高项目的质量。

看,我们有一个项目

http://sourceforge.net/projects/jtidy - jTidy JTidy 是 HTML Tidy 的 Java 端口,一个HTML syntax checker漂亮的打印机。

它可以通过命令行界面验证 xHTML。或者这个工具可以按照我们需要的方式进行扩展,因为所有源代码都是开放的。

我们可以覆盖每个 Selenium 验证方法,例如 assertTextPresent 或任何其他方法,因此它将调用 jTidy(通过提供当前状态的 HTML 源),如果发生一些错误或警告 - 它可以保存到持续集成机器构建的日志 - 因此任何项目的相关人员都可以看到此信息。

我们不能重写所有的 Selenium 方法,在每一步都集成这个调用,而是在我们想要的地方进行这个调用(在 DOM 操作之后)。

是的,我们可以为我们的网站使用 W3C 标记验证器,但没有任何可能使用此验证器验证页面源的初始状态。在页面创建之后,可能会有很多 DOM 操作会产生标记错误/警告——我们可以通过这个方案立即找到它。

使用持续集成的好处之一是您可以从代码中获得快速反馈——它如何与现有代码库集成,测试单元和功能测试是否通过。为什么不获取额外的有用信息,例如即时 xHTML 标记验证状态。我们越早发现问题,就越容易解决它。

我还没有在谷歌上找到关于这个主题的任何东西。并且想知道,你对这个想法有什么看法?

4

4 回答 4

1

似乎是一个值得的想法。

我之前用 CI 做过两件类似的事情:

  1. 作为构建过程的一部分,我使用 Ant 的XMLValidate任务来验证静态 xhtml 文件

  2. 我使用 httpunit 来拉取页面,然后将其解析为 xml

但是在功能测试运行期间绑定到 Selenium 以固有地验证内容的想法对我来说是新颖的。

于 2009-03-07T03:51:16.287 回答
1

我认为,这个想法很棒,但很难从头开始实施。但是这个想法就像构建/质量验证过程的演变,因此有一天它将作为带有文档的即用型工具发布。

于 2009-03-21T09:14:11.307 回答
1

好主意!- 事实上,我只是有完全相同的想法,只是在检查是否有人以前做过 - 啊!看起来你打败了我:)

我正在考虑捕获和自动提交 selenium 命中的每个页面到 w3c HTML 和 CSS 验证器(通过文件而不是链接,因此保持状态) - 任何错误都失败。不过,我喜欢 jtidy 的想法。

于 2010-07-18T09:44:07.957 回答
0

原则上很好,但我不太确定如何从 Selenium 调用它。我很想看到解释如何从 Selenese 或 PHPUnit 运行它的文档。

于 2009-12-13T03:58:48.397 回答