﻿# Запуск PVS\-Studio в TeamCity

Для автоматизации процесса анализа в TeamCity необходимо запускать анализатор как консольное приложение\.

В TeamCity необходимо создать Build Step со следующими параметрами:

1. Runner type: **Command Line**;
1. Step Name: <name\>;
1. Run: **Custom script**;
1. Custom script: <script\>\.

В скрипте напишите команду анализа и опционально команду конвертации отчёта в нужный формат\.

Примеры команд для запуска анализатора, обработки результатов анализа и интеграции в сборочные системы приведены на следующих страницах документации:

* [Как запустить PVS\-Studio в Linux и macOS](https://pvs-studio.ru/ru/docs/manual/0036/);
* [Как запустить PVS\-Studio в Windows](https://pvs-studio.ru/ru/docs/manual/0035/);
* [Как запустить PVS\-Studio Java](https://pvs-studio.ru/ru/docs/manual/6703/)\.

## Смотри, а не читай \(YouTube\)

<https://www.youtube.com/watch?v=KcATS9oiL2g>

## Просмотр результатов анализа

### HTML отчеты

В TeamCity можно прикреплять отчёты анализатора в формате HTML к сборкам, указав их в артефактах\.

Сгенерировать HTML\-отчёт с навигацией по коду можно следующими способами:

**Windows: C, C\+\+, C\#**

```cpp
PlogConverter.exe ... --renderTypes FullHtml ...
```

**Linux/macOS: C, C\+\+**

```cpp
plog-converter ... --renderTypes fullhtml ...
```

**Windows/Linux/macOS: Java**

В настройках плагинов для Maven и Gradle в поле 'outputType' указать значение 'fullhtml'\.

В меню 'Edit Configuration Settings \-\> General Settings \-\> Artifact paths**'** укажите каталог с HTML\-отчётом\.

После успешного выполнения сборки отчёт анализатора формате fullhtml будет доступен в артефактах\. Чтобы открыть его, нужно кликнуть на файл 'index\.html' на вкладке 'Artifacts'\. Также можно сделать так, чтобы отчёт анализатора отображался на специальной вкладке отчёта о сеансе сборки\. Для этого необходимо перейти в настройки проекта, открыть 'Report Tabs' и добавить новую вкладку отчёта сборки \('Create new build report tab'\)\. 

В окне добавления вкладки в поле 'Start page' необходимо указать путь к файлу 'index\.html' относительно корневой папки артефактов\. Например, если содержимое вкладки 'Artifacts' выглядит примерно так:

![TeamCity_ru/image1.png](https://import.viva64.com/docx/blog/TeamCity_ru/image1.png)

то в поле 'Start Page' нужно записать путь 'fullhtml/index\.html'\. После добавления вкладки результаты анализа можно будет просматривать на ней:

![TeamCity_ru/image3.png](https://import.viva64.com/docx/blog/TeamCity_ru/image3.png)

При переходе к предупреждениям анализатора будет открываться дополнительная вкладка браузера:

![TeamCity_ru/image5.png](https://import.viva64.com/docx/blog/TeamCity_ru/image5.png)

### Стандартные отчеты TeamCity

Утилита "plog\-converter" поддерживает стандартные отчёты для TeamCity \- TeamCity Inspections Type\. После генерации отчёта его необходимо вывести в stdout на любом шаге сборки\.

Сгенерировать такой отчёт и вывести его в stdout можно следующими способами:

**Windows: C, C\+\+, C\#**

```cpp
PlogConverter.exe ... –-renderTypes=TeamCity -o TCLogsDir ...
Type TCLogsDir\MyProject.plog_TeamCity.txt
```

**Linux/macOS: C, C\+\+**

```cpp
plog-converter ... -t teamcity -o report_tc.txt ...
cat report_tc.txt
```

**Windows/Linux/macOS: Java**

Поддержка скоро появится\.

После успешного выполнения сборки отчёт анализатора появится на новой вкладке в информации об этой сборке:

![TeamCity_ru/image7.png](https://import.viva64.com/docx/blog/TeamCity_ru/image7.png)

Навигацию по коду можно осуществить при помощи нажатия на номер строки слева от диагностического правила\. Переход осуществится при условии наличия абсолютного пути к исходному файлу, открытого проекта в IDE \(Visual Studio, IntelliJ IDEA\) и установленного плагина TeamCity\.