2

我正在使用 spring2 和 Maven 开发一个 Java 项目。

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

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

我不想测试构建中的每个页面,因为这会大大减慢它,我的偏好是有一个 XML 配置文件,其中包含我希望通过验证过程运行的 URL 列表。

我找到了 Jtidy 项目,但不确定如何将其合并到 Maven 构建中并让它调用特定的 URLS 进行验证。

以前有人做过吗?有人可以简要介绍我需要执行此操作的阶段吗?

干杯

4

1 回答 1

1

如果 JTidy 真的是您想要的,那么有一个Maven JTidy 插件。它似乎适用于文件,而不是 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。忘记:

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

或者使用 --post-data 选项发布:

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 插件使用过滤器部署您的应用程序(cargo 允许合并web.xml,因此您可以仅为验证测试​​添加过滤器)并运行一组基本的 selenium 测试来浏览您的页面并检查由W3cMarkupValidationFilter 进入 HTML 页面是绿色的。)

于 2009-11-26T12:26:43.577 回答