我正在使用spring2和Maven开发一个Java项目。
我已将JSLint4Java合并到Maven中,但现在发现自己需要进一步验证。
构建中有许多核心页面,即主页,搜索页面等,我想自动测试最终HTML输出的规范有效性,即Maven构建中的Valid XHTML 1.1严格。生成最终HTML输出的html模板文件都是模块化和分离的,因此单独验证组件将无法正常工作,因为它们在作为一个执行之前不会生效。
我不想测试构建中的每个页面,因为这会大大减慢它的速度,我的首选是拥有一个XML配置文件,其中包含我希望在验证过程中运行的URL列表。 / p>
我找到了Jtidy项目,但不确定如何将其合并到Maven构建中并让它调用特定的URL来验证。
有没有人曾经这样做过?有人可以简要介绍一下我需要做的这些阶段吗?
干杯
答案 0 :(得分:1)
如果JTidy真的是你想要的,那就是Maven JTidy Plugin。它似乎适用于文件,而不是URL:
<build>
<plugins>
<plugin>
<groupId>jtidy</groupId>
<artifactId>maven-jtidy-plugin</artifactId>
<configuration>
<srcdir>src/main/resources/html</srcdir>
<destdir>target/html</destdir>
<properties>src/main/resources/jtidy.properties</properties>
</configuration>
<executions>
<execution>
<goals>
<goal>jtidy</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
除非插件没有按照你的意愿行事,否则我不建议使用exec()
(这需要安装Tidy,因此会损害可移植性)。
(编辑:实际上,如果你想要一个完全自动化的解决方案,我不确定你想要实现完全,如果你需要自动化部署应用程序等等,但这里有一些提示。
对于某些手册,您可以使用wget来保存生成的HTML。对于GET:
wget http://www.mypage.com/index.jsp?foo=bar
或使用--post-data选项POST:
wget http://www.mypage.com/index.jsp --post-data="foo=bar"
然后运行JTidy。
如果要自动化,则必须先使用maven cargo plugin部署应用程序。然后,您可以将Ant的Get Task与antrun插件一起使用。最后,执行jtidy验证。
如果要在构建期间验证生成的 HTML,则需要部署应用程序并针对它运行某些工具。你应该看看w3c-markup-validation-filter。使用maven cargo plugin使用过滤器部署您的应用程序(货物允许合并web.xml
,以便您只能为验证测试添加过滤器)并运行一组基本的selenium测试来浏览您的页面并检查如果W3cMarkupValidationFilter注入HTML页面的小方框是绿色的。)