Отображение отчетов Fitnesse XML в Hudson GUI - PullRequest
5 голосов
/ 09 февраля 2010

После запуска теста пригодности с помощью testrunner, я получаю файл XML, содержащий все результаты. Теперь я не могу понять, как отобразить эти результаты в графическом интерфейсе Hudson для конкретной работы.

Я занимался серфингом в Интернете, и я обнаружил, что пара людей изменяет файл xsd из CruiseControl.NET, но на самом деле никто не показывает, как он работает!

Если бы кто-то мог помочь мне или указать мне правильное направление, это было бы очень ценно.

Спасибо. Yohann

Ответы [ 3 ]

3 голосов
/ 01 марта 2010

Я преобразовываю вывод xml с помощью xslt из фитнеса в формат junit и публикую результаты тестов. К сожалению, я не смог получить результат html, отображаемый в hudson, но это не реальная проблема, так как все, что я хочу знать, это то, что мои приемочные тесты в порядке.

Ниже приведена копия xslt, которую я использую.

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
  <xsl:element name="testsuite">
    <xsl:attribute name="tests">
      <xsl:value-of select="sum(testResults/finalCounts/*)" />
    </xsl:attribute>
    <xsl:attribute name="failures">
      <xsl:value-of select="testResults/finalCounts/wrong" />
    </xsl:attribute>
    <xsl:attribute name="disabled">
      <xsl:value-of select="testResults/finalCounts/ignores" />
    </xsl:attribute>
    <xsl:attribute name="errors">
      <xsl:value-of select="testResults/finalCounts/exceptions" />
    </xsl:attribute>
    <xsl:attribute name="name">AcceptanceTests</xsl:attribute>
  <xsl:for-each select="testResults/result">
    <xsl:element name="testcase">
      <xsl:attribute name="classname">
        <xsl:value-of select="/testResults/rootPath" />
      </xsl:attribute>
      <xsl:attribute name="name">
        <xsl:value-of select="relativePageName" />
      </xsl:attribute>
      <xsl:choose>
        <xsl:when test="counts/exceptions > 0">
          <xsl:element name="error">
            <xsl:attribute name="message">
              <xsl:value-of select="counts/exceptions" />
              <xsl:text> exceptions thrown</xsl:text>
              <xsl:if test="counts/wrong > 0">
                <xsl:text> and </xsl:text>
                <xsl:value-of select="counts/wrong" />
                <xsl:text> assertions failed</xsl:text>
              </xsl:if>
            </xsl:attribute>
          </xsl:element>
        </xsl:when>
        <xsl:when test="counts/wrong > 0">
          <xsl:element name="failure">
            <xsl:attribute name="message">
              <xsl:value-of select="counts/wrong" />
              <xsl:text> assertions failed</xsl:text>
            </xsl:attribute>
          </xsl:element>
        </xsl:when>
      </xsl:choose>
    </xsl:element>
  </xsl:for-each>
  </xsl:element>
</xsl:template>
</xsl:stylesheet>
2 голосов
/ 23 июля 2013

Не уверен, что это именно то, что вам нужно, но если вы установите плагин Fitnesse , вы можете добавить шаг сборки, который выдаст xml.

Execute Fitnesse Build Script

И затем вы можете опубликовать эти результаты из xml как действие после сборки.

Publish fitnesse results report (from xml)

2 голосов
/ 03 марта 2010

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

Скоро станет возможным запустить тест в hudson с новым аргументом командной строки -c, чтобы запустить тест, а затем запустить его еще раз с аргументом -c, чтобы запросить последние результаты теста в формате junit. То же самое должно применяться к люксам.

Я вернусь с обновлением, когда выйдет релиз, в котором эта функциональность работает.

Я вернулся. Подходу -c еще предстоит проделать определенную работу, однако есть новый плагин Hudson, который вы можете установить непосредственно из Hudson. Сейчас это не идеальное решение для моей команды, но оно работает для некоторых команд.

Чтобы получить:

  1. До 1,350 или выше, Гудзон
  2. Нажмите на Управление Гудзоном
  3. Выбрать доступные плагины
  4. Поиск FitNesse на странице
  5. Установите этот плагин
  6. Настройте его так, чтобы он указывал на ваши fitnesse.jar и FitNesseRoot.
...