Как происходит интеграция?

Последовательность действий:

  1. Запускаем тесты и получаем директорию с результатами тестов Test.xcresults

  2. Скачиваем последнюю версию утилиты: https://github.com/eroshenkoam/xcresults/releases

  3. Выполняем команду

    xcresults export /path/to/Test.xcresult /path/to/allure-results

  4. В директории allure-results будут находится результаты тестов в формате Allure

  5. Отправляем результаты тестов в Allure с помощью плагина или allurectl

Как добавить дополнительную информацию в Allure?

В директории allure-results находятся результаты тестов, которые можно найти по маске *-results.json

Файл выглядит примерно таким образом

{
  "name": "Creating new issue authorized user",
  "status": "passed",
  "stage": "finished",
  "description": "",
  "steps": [
    {
      "name": "Starting web driver",
      ...
    }
  ],
  "attachments": [],
  "parameters": [],
  "start": 1609143700594,
  "stop": 1609143701648,
  "fullName": "io.eroshenkoam.allure.IssuesWebTest.shouldCreateIssue",
  "labels": [
    {
      "name": "tag",
      "value": "web"
    }, 
    ...
  ],
  "links": []
}

В разрезе этой статьи самый интересный блок - это labels. В нем значения находятся в виде key = value. И с помощью этого механизма можно добавить любую информацию в Allure.

Добавление информации выглядит следующим образом:

  1. Добавляем новый label в результат тестов (как именно это делается опишу в следующей главе)

    "labels": [
      {
        "name": "label-name",
        "value": "label-value"
      }, 
    ]
    
  2. Заходим в настройки проекта в нужную секцию (Custom Fields, Environment, Members, Issues, etc...) и добавляем маппинг:

  3. После этого, в результатах тестов вы увидите новое поле Component со значением label-value

  4. Таким же способом можно настроить отображение Environment, Members, Issues и т.д

Как добавить лейблу в XCTest

Для этого нужно залогировать Activity c помощью метода XCTContext.runActivity.

По дефолту такие активити отображаются как шаги автотеста.