Тест Junit для ремонта Sonarqube - PullRequest
0 голосов
/ 05 июня 2018

Я пишу автоматическую систему восстановления для некоторых специфических ошибок sonarqube, используя ложку INRIA.Я хочу написать тесты Junit для моей ремонтной системы, чтобы проверить, была ли исправлена ​​ошибка.Я хочу сделать что-то вроде этого:

X = file;
Y = repair(X);
assert(! hasSonarqubeBug(Y));

Анализ Sonarqube доступен только для завершенных проектов, а не отдельных файлов.Sonarlint анализирует отдельные файлы, но я не знаю, есть ли способ написать такой тест с помощью sonarlint.

1 Ответ

0 голосов
/ 06 июня 2018

С помощью веб-API вы можете получать информацию о проблемах для любых компонентов (включая файлы) в Sonarqube.Из документации веб-API (http (s): // sonarhost: 9000 // web_api / api / Issues) для
GET api / Issues / Параметры поиска componentKeys:

Список через запятуюкомпонентных ключей.Извлекать проблемы, связанные с определенным списком компонентов (и всех его потомков).Компонентом может быть портфель, проект, модуль, каталог или файл.

- Редактировать после комментария -
Чтобы получить возможные новые проблемы после измененияисходный код, вам понадобится сборка и сканирование кода сканером Sonarqube.Кроме плагина Sonarlint IDE, нет локального предварительного просмотра (sonar.analysis.mode = предварительный просмотр для сканеров устарел и скоро исчезнет).
Возможно, есть какой-то хак с такими безголовыми плагинами Eclipse и Sonarlint (при условии, что вы используете Eclipse,не знаю, без головы с другими IDE)!?
Вы также можете использовать CLI Sonarlint, который больше не разрабатывается и не поддерживается, но он все еще доступен здесь , хотя он может не работать с более новым Sonarqubeверсии.

TL; DR
В зависимости от версии вашего Sonarqube, при использовании:
SQ 5.6.x вы можете использовать сканер с sonar.analysis.mode =при предварительном просмотре результаты не будут публиковаться на сервере SQ.
SQ 6.x и более поздних версиях, вы можете попробовать, работает ли Sonarlint CLI, или попробовать Eclipse без головы.В противном случае вы должны запустить свои унисты в Eclipse и проверить с помощью плагина Sonarlint.

...