Плагин XPath и Jenkins Plot - PullRequest
       21

Плагин XPath и Jenkins Plot

4 голосов
/ 20 января 2012

Я пытаюсь использовать плагин Jenkins 'Plot для генерации графика того, сколько маркеров "TODO" у нас в коде.

У меня есть файл XML, сгенерированный как часть сборки, который включает в себя данные о них (среди прочего): каждый маркер TODO имеет строку в XML, которая выглядит следующим образом:

<tag line="3" name="todo" description="Do something with this"/>

Используя автономный инструмент xpath, я могу использовать выражение //tag[@name='todo'], чтобы получить все соответствующие элементы, или count(//tag[@name='todo']), чтобы просто получить их количество.

Это количество - значение, которое я хочу построить. Однако я не смог получить какие-либо данные на графике в Дженкинс.

Я создал график и указал, что это файл XML. Затем Дженкинс спрашивает меня, будет ли результатом Nodeset, Node, String, Boolean или Number.

Я предполагаю, что "Nodeset" будет применяться к //tag[@name='todo'], а "Number" к count(//tag[@name='todo']). Но я попробовал их обоих, и оба они просто дают мне пустой график, без данных на нем.

Самое расстраивающее из всех, это то, что Дженкинс не дает мне никаких отзывов о том, в чем проблема; просто пустой график. Ничего в журнале сборки или где-либо еще я не вижу.

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

Заранее спасибо.

[EDIT]

Более крупный образец XML, как указано в комментариях:

<?xml version="1.0" encoding="utf-8"?>
<project>
  <method>
    <docblock>
      <tag line="763" name="todo" description="This needs doing"/>
    </docblock>
  </method>
  <method>
    <docblock>
      <tag line="14" name="todo" description="This also needs doing"/>
    </docblock>
  </method>
</project>

(я вычеркнул элементы и атрибуты, которые не имеют отношения, но это основная структура)

Насколько я могу судить, там нет никакого пространства имен XML.

1 Ответ

5 голосов
/ 12 октября 2012

Что я наконец-то достиг, чтобы сделать работу, так это:

Я создаю файл отчета со следующими данными:

<report>
  <serie1>10</serie1>
  <serie2>20</serie2>
  <serie3>30</serie3>
</report>

Затем я настраиваю свой график со следующей конфигурацией:

 XPath Result type : Nodeset
 XPath Expression : /report/*

Тогда я получаю правильное построение моей базы данных: имена серий берутся из имени элемента (serie1, serie2 ...), а значение берется из текстового содержимого. Действительно, это было объяснено в блоке помощи:

 (...)
 If a nodeset is selected, a point for each node that is selected will be plotted.
 The label of each point is the name of the element that was selected, the value is the text value. 

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

...