Skip to content
 
 

Repository files navigation

DoQA для JVM - автотесты, которые сами попадают в TMS

CI Maven Central License

Одна зависимость - и результаты ваших JUnit-тестов появляются в DoQA сами: с шагами, фикстурами, вложениями, параметрами и стабильной историей по каждому тесту. Без переписывания тестов, без своего инфраструктурного кода, без риска для сборки - если DoQA недоступен или не настроен, тесты проходят как обычно.

Быстрый старт

<dependency>
  <groupId>io.github.slavytuch</groupId>
  <artifactId>doqa-junit5</artifactId>
  <version>0.2.1</version>
  <scope>test</scope>
</dependency>
testImplementation("io.github.slavytuch:doqa-junit5:0.2.1")   // Gradle

Уже на этом шаге адаптер пишет в results/ файлы Allure-совместимого формата - его принимает конвейер загрузки DoQA, а мигрирующим с Allure не нужно менять пайплайн. Загрузить их в DoQA можно артефактом CI. А чтобы слать напрямую в API, достаточно трёх ключей:

# doqa.properties (или DOQA_URL / DOQA_TOKEN / DOQA_SPACE_ID в CI)
url=https://demo.doqa.app
token=<project token>
spaceId=42

Подробный гайд - конфигурация, аннотации, режимы, траблшутинг - в README адаптера.

Что вы получаете

  • Полный отчёт - дерево шагов (@Step и Doqa.step), setup/teardown вплоть до @BeforeAll/@AfterAll, вложения (файлы и контент из памяти), параметры инвокаций, ссылки на задачи и требования, метки.
  • Стабильная история тестов - каскад идентификации (@DoqaId → id в заголовке → Allure @AllureId → детерминированный хэш): переименования и рефакторинги не рвут историю и flaky-аналитику.
  • Селективные прогоны - Run Player DoQA перезапускает выбранные тесты, а адаптер физически исполняет только их (деселект на discovery - экономия времени CI) и умеет проходить их в порядке плана.
  • Живой прогресс - realtime-режим стримит результаты по мере прогона, батч-режим шлёт всё одним потоком чанков в конце; и то и другое переживает сбои сети без потери прогона.
  • Не ломает сборку - ошибка репортинга логируется и не роняет тесты; ретраи уважают идемпотентность (дубликат рана невозможен).
  • Переезд с Allure без переписывания - Allure-разметка (@AllureId, @Epic, @Owner, @Severity, ссылки) и нативные JUnit @Tag/@DisplayName подхватываются автоматически.
  • Файловый режим для строгих контуров - тестовому процессу не нужны ни сеть до DoQA, ни секреты: результаты уезжают артефактом пайплайна.

Поддерживаемые фреймворки

Фреймворк Артефакт
JUnit 5 (Jupiter) io.github.slavytuch:doqa-junit5

Как это устроено

ваши тесты ──► doqa-junit5 ──► doqa-java-commons ──► doqa-client ──► DoQA
Модуль Что это
doqa-junit5 адаптер JUnit 5 - то, что подключают в тестовый проект
doqa-java-commons общее ядро адаптеров: фасад Doqa, аннотации @Doqa*, аспект @Step, атрибуция, сессия репортинга
doqa-client клиент DoQA Autotest API и файловый sink; ноль рантайм-зависимостей

Пользовательский API (app.doqa.Doqa, app.doqa.annotations.*) живёт в ядре и одинаков во всех адаптерах - смена фреймворка не потребует править импорты. Не нашли адаптер своего фреймворка, напишите нам в поддержку support@doqa.app, мы обязательно добавим поддержку. А так же в README ядра есть рецепт из четырёх шагов, как разработать нужный адаптер.

Сборка

Нужен только JDK 11+ (CI проверяет 11, 17 и 21), Maven приедет через wrapper:

./mvnw clean verify

Все модули релизятся одной версией; релиз - тег v<версия>, дальше CI сам публикует подписанные артефакты в Maven Central и собирает release notes из type:-лейблов PR (история изменений).

Лицензия

Apache License 2.0

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages