我精简的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
请让我知道为什么我会收到此警告,以及如何消除/修复它?谢谢。
答案 0 :(得分:2)
我收到此警告是因为我正在从分析中排除测试文件。我看到,除了在您的媒体资源中,您还排除了测试:
sonar.exclusions=**/test_*.py,**/**.pyc,felix/utils/*,**/*.iml
这将阻止声纳计算测试次数及其通过/失败状态,如开源here
所示答案 1 :(得分:0)
问题出在与Pytest调用中集成的Pylint有关。 父级Pytest调用生成了一个单元测试报告,该报告的空类名表示Pylint提出的其他“空”测试。 SonarQube警告那些空的类名。 我最终删除了Pylint Pytest集成,而只是将Pylint作为Pytest的一个单独步骤来运行。