# Инструмент командной строки

## Варианты использования

Мы добавили консольную утилиту `testmace-cli` для запуска тестов из проекта, созданного в TestMace, чтобы вы могли наладить автоматизированные процессы, включающие тестирование API. Возможные области применения:&#x20;

* Быстрый запуск тестов без GUI, после внесения изменений в реализацию API
* Автоматический запуск тестов перед коммитом в систему контроля версий
* Запуск тестов в процессе автоматической интеграции и доставки CI/CD
* Регулярный запуск тестов по расписанию для мониторинга работоспособности и стабильности API

## Установка

### NPM пакет

Убедитесь что в вашей системе установлен [node.js](https://nodejs.org/en/) не младше 10-ой версии.

Для установки воспользуйтесь командой:

```
npm install --global @testmace/cli
```

## Запуск

Ниже показан простейший способ запуска выполнения тестов проекта.

Для запуска тестов локального проекта:

```
testmace-cli <full_path_to_project>
```

Для запуска тестов облачного проекта:

```
testmace-cli -p <project_id> -t <access_token>
```

В случае успешного выполнения всех тестов приложение вернет код 0, в противном случае код ошибки 1. По-умолчанию, результаты тестов выводятся в stdout.

### Параметры запуска

Утилитой поддерживаются следующие параметры запуска:

* `-e <project_environment_name>` или `--environment <project_environment_name>` - позволяет указать с какими переменными окружения проекта производить запуск тестов. Имя должно совпадать с одним из окружений, заданых в проекте.
* `-r <reporter_type>` или `--reporter <reporter_type>` - позволяет указать в каком виде предоставить результаты запуска тестов. В качестве `reporter_type` можно указать `junit`, который сгенерирует результат в формате JUnit XML.&#x20;
* `-p <project_id>` или `--project <project_id>` - идентификатор облачного проекта. Скопировать его можно на странице конкретного проекта в панели управления облачной синхронизации
* `-t <access_token>` или `--token <access_token>` - авторизационный токен для доступа к возможностям облачной синхронизации. Управление авторизационными токенами находится в профиле пользователя панели управления облачной синхронизации.

## JUnit XML отчет

При запуске программы с ключем `--reporter=junit` будет сгенерирован отчет в формате JUnit XML. Он позволяет получить более подробный отчет о выполненных и проваленых запросах и тестах. Отчеты в таком формате могут быть визуализированы некоторым программами (например, [XUnit Viewer](https://github.com/lukejpreston/xunit-viewer)) и системами CI/CD (например, [Jenkins](https://jenkins.io/)).

Каждый исполняемый узел в дереве проекта представлен в отчете как *TestSuite*. Имя cоответствует пути до узла относительно корня проекта. Для ссылочного узла типа `Link` к имени добавляется путь до узла, на которого установлена ссылка.  В качестве *properties* перечислены ключи и значения переменных узла. Каждый тест и непосредственный HTTP запрос представлен в отчете как *TestCase.*

### Пример визуализации отчета

![](https://1540441421-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lh_FaVh9XfQJ0p1KqZ1%2F-LnGtEa_MHqJylD-cWAR%2F-LnHL7zf4F2xLggqaU4I%2FXunit%2BViewer%2B-%2BGoogle%2BChrome%2B2019-08-18%2B19.34.59.png?alt=media\&token=e630a573-ac17-467f-8b0c-653b21abb5f4)
