Я пытаюсь исключить тесты из анализа SonarQube.я установил следующее в sonarscanner в Jenkins:
sonar.sources=.
sonar.exclusions=manage.py, rone/wsgi.py, rone/settings/**, rone/utils/**, rone/service/tests/**
и у меня есть отчет о покрытии и xunit.
sonar.python.coverage.reportPaths=./rone_env/rone_service/coverage.xml
sonar.python.xunit.reportPath=./rone_env/rone_service/xunittest.xml
Проблема в том, что я не получаю результаты анализа xunittest какон не находит тестовые файлы для получения подробной информации.
Поэтому я добавил следующее, чтобы включить тестовые файлы для результата xunittest.
sonar.tests=./rone/service/tests
Теперь я получаю отчет о xunittest, но я также получаютесты, анализируемые на запахи и дубликаты кода, которые мне не нужны.
Я пробовал разные комбинации использования исключений и включений
sonar.test.inclusions
sonar.test.exclusions
sonar.coverage.exclusions
sonar.cpd.exclusions
, но безуспешно.
Выпуск SonarQube - версия 6.7.6
Выпуск SonarScanner - 3.3.0.1492
РЕДАКТИРОВАТЬ 1.
Вот полный SonarScannerконфигурации.Папка tests содержит 13 тестовых файлов, все из которых включены в анализ кода.
# must be unique in a given SonarQube instance
sonar.projectKey=RoneService
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=rone_service
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
sonar.tests=./rone/service/tests
sonar.exclusions=manage.py, rone/wsgi.py, rone/settings/**, rone/utils/**, rone/service/tests/**
sonar.language=py
sonar.projectBaseDir=./rone_env/rone_service
# Encoding of the source code. Default is default system encoding
# sonar.sourceEncoding=UTF-8
# Python Coverage Results Import
sonar.python.coverage.reportPaths=./rone_env/rone_service/coverage.xml
# Python Unit Tests Execution Reports Import
sonar.python.xunit.reportPath=./rone_env/rone_service/xunittest.xml
# Import Pylint Issues Report
sonar.python.pylint.reportPath=./rone_env/rone_service/pylint-report.txt
# Add this line to Additional arguments field to get more verbose debug logs from SonarScanner
# -Dsonar.verbose=true -X
EDIT 2.
вот журналы отладки из файлов индексации
10:41:19.397 INFO: Language is forced to py
10:41:19.402 DEBUG: Initializers :
10:41:19.403 INFO: Index files
10:41:19.406 INFO: Excluded sources:
10:41:19.406 INFO: manage.py
10:41:19.406 INFO: rone/wsgi.py
10:41:19.406 INFO: rone/settings/**
10:41:19.406 INFO: rone/utils/**
10:41:19.406 INFO: rone/service/tests/**
10:41:19.423 DEBUG: 'rone/__init__.py' indexed with language 'py'
10:41:19.428 DEBUG: 'rone/service/__init__.py' indexed with language 'py'
10:41:19.429 DEBUG: 'rone/service/models.py' indexed with language 'py'
10:41:19.431 DEBUG: 'rone/service/urls.py' indexed with language 'py'
10:41:19.432 DEBUG: 'rone/service/serializers/keytask.py' indexed with language 'py'
10:41:19.433 DEBUG: 'rone/service/serializers/rulegroup.py' indexed with language 'py'
10:41:19.433 DEBUG: 'rone/service/views/__init__.py' indexed with language 'py'
10:41:19.435 DEBUG: 'rone/service/views/keytask.py' indexed with language 'py'
10:41:19.436 DEBUG: 'rone/service/views/rulegroup.py' indexed with language 'py'
10:41:19.437 DEBUG: 'rone/service/apps.py' indexed with language 'py'
10:41:19.440 DEBUG: 'rone/urls.py' indexed with language 'py'
10:41:19.446 DEBUG: 'rone/service/tests/tests_rulegroup_create.py' indexed as test with language 'py'
10:41:19.446 DEBUG: 'rone/service/tests/__init__.py' indexed as test with language 'py'
10:41:19.448 DEBUG: 'rone/service/tests/tests_rulegroup_filerules_update.py' indexed as test with language 'py'
10:41:19.449 DEBUG: 'rone/service/tests/tests_applicationfilerule_create.py' indexed as test with language 'py'
10:41:19.450 DEBUG: 'rone/service/tests/tests_rulegroup_delete.py' indexed as test with language 'py'
10:41:19.451 DEBUG: 'rone/service/tests/tests_keytask.py' indexed as test with language 'py'
10:41:19.451 DEBUG: 'rone/service/tests/tests_rulegroup_list.py' indexed as test with language 'py'
10:41:19.452 DEBUG: 'rone/service/tests/tests_applicationfilerule_list.py' indexed as test with language 'py'
10:41:19.453 DEBUG: 'rone/service/tests/tests_rulegroup_filerules_update_property.py' indexed as test with language 'py'
10:41:19.455 DEBUG: 'rone/service/tests/local_test_mixin.py' indexed as test with language 'py'
10:41:19.456 DEBUG: 'rone/service/tests/tests_applicationfilerule_delete.py' indexed as test with language 'py'
10:41:19.456 INFO: 22 files indexed
10:41:19.457 INFO: 18 files ignored because of inclusion/exclusion patterns
РЕДАКТИРОВАТЬ 3. - Решение Проблемой был отчет Pylint, который не имел надлежащих исключений.Поэтому при импорте отчетов Pylint / lint, Coverage и UnitTest.Убедитесь, что они не импортируют нежелательные результаты.Урок выучен.: D