我正在SonarQube上扫描Jenkins作业中的python代码。为了使我的构建“通过”(即公司的内部规则),Sonar扫描必须具有测试覆盖率分数和测试成功分数。我正在使用鼻子和覆盖率来运行测试并生成这些报告(nosetests.xml和coverage.xml):
nosetests --with-coverage --cover-erase --with-xunit --exe --cover-package=at_overlay
coverage report --omit src/tests/*,*/__init__.py
coverage xml --omit src/tests/*,*/__init__.py
我的扫描报告具有正确的覆盖范围数字,但没有测试成功分数。当我查看扫描过程中得到的输出时,会看到以下内容:
14:47:19 [sonarQube scan] 14:47:19.252 INFO - Processing report '/usr/src/app/jenkins/workspace/at-overlay_release_uat-BNAIZGRBYSDANHOQHN2L6FCL4JRFHKJO5WZOZYKP6RAZFUAILPPA/nosetests.xml'
14:47:19 [sonarQube scan] 14:47:19.256 WARN - The resource for 'tests.test_transformation_helper.TestCase' is not found, drilling down to the details of this test won't be possible
14:47:19 [sonarQube scan] 14:47:19.256 WARN - The resource for 'tests.test_data_wrapper.TestDataWrapper' is not found, drilling down to the details of this test won't be possible
我在这里找到了一个答案-Importing python test run information into sonarqube,尽管当我尝试仍然可以得到相同的结果时。我在这里想念一些明显的东西吗?
答案 0 :(得分:0)
尝试删除测试的遗漏:
coverage report --omit src/tests/*,*/__init__.py
coverage xml --omit src/tests/*,*/__init__.py
到
coverage report --omit */__init__.py
coverage xml --omit */__init__.py
Sonar使用测试文件来计算测试成功,如OSS插件代码here
所示那是警告日志的来源。