Как исправить следующее предупреждение: `WARN: ресурс для '' не найден, детализация этого теста будет невозможна. - PullRequest
1 голос
/ 28 марта 2019

Мои сокращенные sonar-project.properties файлы выглядят следующим образом:

# Sources
sonar.sources=felix
sonar.sources.inclusions=**/**.py
sonar.exclusions=**/test_*.py,**/**.pyc,felix/utils/*,**/*.iml

# Linter
sonar.python.pylint=/usr/local/bin/pylint
sonar.python.pylint_config=.pylintrc
sonar.python.pylint.reportPath=pylint-report.txt

# Coverage / Unit Tests
sonar.tests=./tests
sonar.test.inclusions=**/test_**.py
sonar.python.xunit.skipDetails=false
#DEFAULT VALUES: sonar.python.xunit.reportPath=xunit-reports/xunit-result-*.xml
#DEFAULT VALUES: sonar.python.coverage.reportPath=coverage-reports/*coverage-*.xml

Сокращенное дерево исходного кода выглядит примерно так:

├── felix
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   ├── process.cpython-35.pyc
│   │   └── spark.cpython-35.pyc
│   ├── felix.iml
│   ├── process.py
│   ├── spark.py
│   └── utils
│       └── utils.py
├── requirements.txt
├── setup.py
├── sonar-project.properties
├── tests
│   ├── __init__.py
│   ├── __pycache__
│   │   ├── __init__.cpython-35.pyc
│   │   └── test_process.cpython-35-PYTEST.pyc
│   ├── cia-spark.iml
│   ├── data
│   └── test_process.py
└── tox.ini

Однако я получаю следующее предупреждение:когда я запускаю sonar-scanner: WARN: The resource for '' is not found, drilling down to the details of this test won't be possible

Может кто-нибудь, пожалуйста, сообщить мне, почему я получаю это предупреждение и как я могу избавиться от него / исправить его?Спасибо.

Ответы [ 2 ]

2 голосов
/ 09 апреля 2019

Я получил это предупреждение, потому что исключал тестовые файлы из анализа. Я вижу, что в ваших свойствах вы также исключаете ваши тесты:

sonar.exclusions=**/test_*.py,**/**.pyc,felix/utils/*,**/*.iml

Это не позволит гидролокатору рассчитать количество тестов и их состояние прохождения / отказа, как показано в открытом источнике здесь

0 голосов
/ 01 мая 2019

Проблема оказалась в том, что Pylint интегрирован в вызов Pytest. Родительский вызов Pytest сгенерировал отчет о модульном тестировании, в котором были пустые имена классов для дополнительных «пустых» тестов, которые придумал Pylint. SonarQube предупредил об этих пустых именах классов. Я закончил тем, что удалил интеграцию с Pylint Pytest и просто запустил Pylint как отдельный шаг от Pytest.

...