используя JTidy с Maven2 - PullRequest
2 голосов
/ 26 ноября 2009

Я работаю над проектом Java, используя spring2 и Maven.

Я уже включил JSLint4Java в Maven, но теперь мне нужно еще кое-что проверить.

В сборке есть несколько основных страниц, т. Е. Домашняя страница, страница поиска и т. Д., Которые я хочу автоматически протестировать в окончательном HTML-выводе на предмет достоверности спецификации, т. Е. Действительного XHTML 1.1 строго из сборки Maven. Файлы HTML-шаблонов, которые генерируют окончательный вывод HTML, все модульные и разделены, поэтому проверка компонентов по отдельности не будет работать, так как они не станут действительными, пока не будут выполнены как единое целое.

Я не хочу тестировать каждую страницу в сборке, так как это значительно замедлит ее, я бы предпочел иметь XML-файл конфигурации со списком URL-адресов, которые я хочу запустить через процесс проверки.

Я нашел проект Jtidy, но не уверен, как включить это в сборку Maven и заставить его вызывать определенные URL-адреса для проверки.

Кто-нибудь когда-нибудь делал это раньше? Может ли кто-нибудь предоставить краткий обзор этапов, которые мне понадобятся для этого?

Приветствия

1 Ответ

1 голос
/ 26 ноября 2009

Если 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. Для получения:

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

Или POST с опцией --post-data:

wget http://www.mypage.com/index.jsp --post-data="foo=bar"

А затем запустите JTidy. Если вы хотите автоматизировать работу, вам сначала нужно развернуть приложение с помощью maven cargo plugin . Затем вы можете использовать Ant 10 * Get Task с плагином antrun. И, наконец, выполните проверку jtidy.

Если вы хотите проверить сгенерированный HTML во время сборки, вам нужно будет развернуть ваше приложение и запустить какой-нибудь инструмент против него. Вы должны взглянуть на w3c-markup-validation-filter . Используйте плагин maven cargo для развертывания приложения с фильтром (Cargo позволяет объединить web.xml, так что вы можете добавить фильтр только для проверочного теста) и запустить набор базовых тестов селена для просмотра ваших страниц. и проверьте, зеленый ли маленький прямоугольник, введенный W3cMarkupValidationFilter в HTML-страницу.)

...