2009-11-26 34 views
2

我正在使用spring2和Maven开发Java项目。使用JTidy和Maven2

我已经将JSLint4Java整合到Maven中,但现在发现自己需要做一些进一步的验证。

构建中有许多核心页面,即主页,搜索页面等,我想自动测试规范有效性的最终HTML输出,即Maven构建中的严格有效XHTML 1.1。生成最终HTML输出的html模板文件全部模块化并分离,因此单独验证组件不会起作用,因为它们只有在作为一个执行之后才会生效。

我不想在构建中测试每个页面,因为这会大大减慢它的速度,我的偏好是将XML配置文件与URL列表相结合,希望通过验证过程来运行。

我已经找到了Jtidy项目,但我不确定如何将它合并到Maven构建中,并让它调用特定的URL来验证。

有没有人曾经这样做过?有人可以提供我需要做的这些阶段的简要演练吗?

干杯

回答

1

如果JTidy真的是你想要的东西,有一个Maven JTidy Plugin。这似乎上的文件,而不是网址:

<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()(这将需要安装整齐,从而损害便携性)。如果你需要一个完全自动化的解决方案,如果你需要自动化应用程序的部署等,但是我不确定你想要达到什么样的效果 。这里有一些更多的提示

对于手工的东西,你也许可以使用wget保存生成的HTML对于GET:

wget http://www.mypage.com/index.jsp?foo=bar 

或交与--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,以便您可以添加仅用于验证测试的过滤器),并运行一组基本的硒测试来浏览您的页面,并检查由W3cMarkupValidationFilter进入HTML页面是绿色的。)

+0

啊好的,这听起来像我想要的。问题在于,项目中的JSP模板都被分解为单独的组件,其中包含服务器代码,它们在被URL编译和调用之前可能无效。也许有一些过程可以调用URL并临时保存内容并检查它们? – 2009-11-26 12:42:11