Статьи

Управление требованиями BDD с JBehave, Thucydides и JIRA — Часть 2

Thucydides  — это библиотека с открытым исходным кодом, разработанная для упрощения практики Behavior Driven Development. Thucydides прекрасно работает с инструментами BDD, такими как  JBehave , или с более традиционными инструментами, такими как JUnit, чтобы упростить написание автоматических приемочных тестов и предоставить более богатую и полезную живую документацию. В этой серии статей мы рассмотрим тесную одно- и двустороннюю интеграцию, которую Thucydides предлагает с JIRA. В  первой статье  обсуждалась базовая односторонняя интеграция с JIRA. В этой статье мы рассмотрим дальнейшую интеграцию. Мы увидим, как вставлять ссылки на отчеты Thucydides в JIRA, как обновлять состояние проблем JIRA на основе результатов теста Thucydides и как сообщать о версиях и выпусках JIRA в отчетах Thucydides.

В остальной части этой статьи предполагается, что вы знакомы с Фукидидом. Для ознакомления с руководством Thucydides ознакомьтесь с  документацией Thucydides  или  этой статьей  для быстрого ознакомления.

Ссылки от JIRA до Фукидида

Простейшая форма двусторонней интеграции между Thucydides и JIRA — заставить Thucydides вставить комментарий, содержащий ссылки на отчеты об испытаниях Thucydides для каждой связанной карточки вопроса. Чтобы это сработало, нужно сообщить Фукидиду, где живут отчеты. Один из способов сделать это — добавить свойство thucydides.public.url  в файл  thucydides.properties  с адресом отчетов thucydides.

thucydides.public.url=http://buildserver.myorg.com/latest/thucydides/report

Это скажет Thucydides, что вы хотите не только ссылки из отчетов Thucydides на JIRA, но вы также хотите включить ссылки в карты JIRA обратно в соответствующие отчеты Thucydides. Когда это свойство определено, Thucydides добавит комментарий, подобный следующему, к любым проблемам, связанным с выполненными тестами:

изображения / JIRA-Thucydides-comment.png

Thucydides.public.url  обычно указывает на локальный веб — сервер , на котором развертывается отчеты, или на пути в пределах вашего сервера CI. Например, вы можете опубликовать отчеты Thucydides о Jenkins с помощью плагина Jenkins HTML Publisher , а затем добавить строку, подобную следующей, в свой   файл thucydides.properties :

thucydides.public.url=http://jenkins.myorg.com/job/myproject-acceptance-tests/Thucydides_Report/

Если вы не хотите, чтобы Thucydides обновлял проблемы JIRA для определенного запуска (например, при локальном запуске тестов), вы также можете установить для  thucydides.skip.jira.updates  значение true, например

thucydides.skip.jira.updates=true

Это будет просто записывать соответствующие номера проблем в журнал, а не пытаться подключиться к JIRA.

Обновление состояний проблемы JIRA

Вы также можете настроить плагин для обновления статуса проблем JIRA. По умолчанию это деактивировано: чтобы использовать эту опцию, вам нужно установить для   параметра thucydides.jira.workflow.active значение  true , например

thucydides.jira.workflow.active=true

Конфигурация по умолчанию будет работать с рабочим процессом JIRA по умолчанию: проблемы с открытым или находящимся в процессе выполнения, связанные с успешными тестами, будут решены, а закрытые или решенные проблемы, связанные с ошибочными тестами, будут вновь открыты. Если вы используете настроенный рабочий процесс или хотите изменить способ работы переходов, вы можете написать свою собственную конфигурацию рабочего процесса. Конфигурация рабочего процесса использует простой Groovy DSL. Ниже приведен пример файла конфигурации, используемого для рабочего процесса по умолчанию:

  when'Open',{
  'success' should:'Resolve Issue'
  }

  when'Reopened',{
  'success' should:'Resolve Issue'
  }

  when'Resolved',{
  'failure' should:'Reopen Issue'
  }

  when'In Progress',{
  'success' should:['Stop Progress','Resolve Issue']
  }

  when'Closed',{
  'failure' should:'Reopen Issue'
  }

Вы можете написать свой собственный файл конфигурации и поместить его в путь к классам вашего тестового проекта (например, в каталоге ресурсов). Затем вы можете переопределить конфигурацию по умолчанию, используя  свойство thucydides.jira.workflow , например

thucydides.jira.workflow=my-workflow.groovy

В качестве альтернативы вы можете просто создать файл с именем  jira-workflow.groovy  и поместить его где-нибудь в вашем пути к классам (например, в   каталоге src / test / resources ). Thucydides будет использовать этот рабочий процесс. В обоих этих случаях вам не нужно явно устанавливать   свойство thucydides.jira.workflow.active .

Управление релизами

В JIRA вы можете организовать релизы вашего проекта в версии, как показано здесь:

Изображения / JIRA-versions.png

Вы можете назначить карты одной или нескольким версиям, используя поле  Fix Version / s  :

Изображения / JIRA-фикс-versions.png

По умолчанию Thucydides будет читать информацию о версии из выпусков в JIRA. Результаты теста будут связаны с конкретной версией с помощью поля «Фиксированные версии». На  вкладке «  Релизы » представлены краткие сведения о различных запланированных версиях и о том, насколько хорошо они были протестированы на данный момент:

Изображения / альбомы-tab.png

JIRA использует плоскую структуру версий — например, у вас не может быть выпусков, которые состоят из нескольких спринтов. Thucydides позволяет вам организовать их в иерархическую структуру, основанную на простом соглашении об именах. По умолчанию Thucydides использует «релиз» в качестве релиза самого высокого уровня, а «итерация» или «спринт» — в качестве второго уровня. Например, предположим, что у вас есть следующий список версий в JIRA — Выпуск 1 — Итерация 1.1 — Итерация 1.2 — Выпуск 2 — Выпуск 3

Это создаст отчеты о выпуске для выпуска 1, выпуска 2 и выпуска 3, при этом итерация 1.2 и итерация 1.2 появятся под релизом 1. Отчеты будут содержать список требований и результатов испытаний, связанных с каждым выпуском. Вы можете перейти к любому из выпусков, чтобы увидеть подробности об этом конкретном выпуске.

Изображения / releases.png

Вы также можете настроить названия типов выпусков, используя thucydides.release.typesproperty, например

thucydides.release.types=milestone, release, version

Вывод

Thucydides имеет мощную одно- и двустороннюю интеграцию с JIRA. В этих статьях мы увидели, как можно объединить ссылки из Thucydides в JIRA, из JIRA в Thucyides и даже обновить состояние проблем в JIRA на основе результатов теста. И, если вы управляете своими версиями в JIRA, вы также можете сообщить о том, насколько хорошо была протестирована каждая версия, и что еще предстоит протестировать до следующего выпуска.

Хотите узнать больше? Обязательно ознакомьтесь с  веб — сайта Фукидид , в  блог Фукидида , или присоединиться к Фукидид Google группу пользователей  присоединиться к обсуждению с другими пользователями Фукидида.