Python | Ошибка при выполнении сканера SonarQube | Строка 3832 находится вне диапазона в файле.py
Ниже мой файл sonar.properties:-
sonar.projectKey=code
sonar.projectName=PROJECT
sonar.projectVersion=0.0.1
sonar.sources=code
sonar.python.coverage.reportPath=code/coverage*.xml
sonar.python.coveragePlugin=cobertura
sonar.python.xunit.reportPath=TEST*.xml
sonar.sourceEncoding=UTF-8
sonar.pli.marginLeft=2
sonar.pli.marginRight=0
Ниже приведена команда, которую я выполняю:
$HOME/sonar-scanner-3.2.0.1227-linux/bin/sonar-scanner -Dsonar.verbose=false -Dsonar.projectKey=code -Dproject.settings=code/devops/sonar.properties -Dsonar.host.url=https://mysonar.net -Dsonar.login=$USERNAME -Dsonar.password=$PASSWORD
Журналы ошибок:-
INFO: Python test coverage
INFO: Parsing report '/data/jenkins/workspace/master-ci/code/coverage.xml'
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 9.052s
INFO: Final Memory: 15M/397M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: Line 3832 is out of range in the file code/src/driver.py (lines: 3831)
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
[Pipeline] }
[Pipeline] // script
[Pipeline] }
[Pipeline] // withCredentials
[Pipeline] }
WARN: Unable to locate 'report-task.txt' in the workspace. Did the SonarScanner succedeed?
Версия Sonarqube:- Версия 7.1 (сборка 11001) Сонар-сканер LGPL v3Community:- 3.2.0.1227
1 ответ
1- Добавьте пробел. (внизу файла extension.xml). Это сработало для старых тестов pytest.
2- В другом проекте я обновил следующие пакеты: pytest, pytest-cov и охват до последней версии. (Работал как шарм).
Здесь есть одна загвоздка: при обновлении до последней версии pytest вы можете обнаружить методы, которые больше не существуют для conftest.py. Например: get_marker, который можно заменить новым get_closest_marker. Или зарезервированные слова вроде «просьба». В последнем случае вы можете переименовать метод с именем request.