gpt4 book ai didi

python - SonarQube - 是否有关于如何解决覆盖问题的基本示例/解释?

转载 作者:行者123 更新时间:2023-11-28 21:19:01 25 4
gpt4 key购买 nike

我对使用 SonarQube/Cloud 还很陌生(所以请保持温和!),我正在努力研究如何改进我的代码所具有的“新代码的 0% 覆盖率”。

这是一个例子:

我添加了代码:

    validation_errors = []

for field in required:
if field not in request.POST:
validation_errors.append("field '{0}' missing".format(field))

if len(validation_errors) > 0:
return JsonResponse({'errors': validation_errors}, status=400 )

我有一个(Django)测试:

def test_required_params(self):
# no username
response = self.client.post(self.url, { 'password': 'secret', 'media_file': self.video_file })
self.assertRaises(forms.ValidationError)
self.assertEqual(response.status_code, 400)

但是当我运行 Sonar 扫描仪时,在在线报告中,我收到消息说这些行没有被覆盖(参见:https://sonarcloud.io/component_measures?id=django_oppia&metric=new_coverage&selected=django_oppia%3Aapi%2Fmedia.py)

我确定我一定对覆盖率指标的实际含义有一些非常基本的误解/不理解。

如果有人能向我解释我需要在我的代码中添加/更新什么(只是上面的特定示例),我将不胜感激,因此 SonarCloud 分析不会继续将其标记为未涵盖。

感谢您的帮助 - 如果您需要有关代码/平台/版本等的任何额外信息,请告诉我。

编辑我正在运行的 Sonar 扫描仪命令:

sonar-scanner \
-Dsonar.projectKey=django_oppia \
-Dsonar.organization=alexlittle-github \
-Dsonar.sources=. \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.login=xxxxxxxxxx \
-Dsonar.exclusions=docs/_build/**/*

我从源代码的根目录运行它,我没有在 sonar/conf/sonar-scanner.properties 文件中指定/编辑任何内容(它只是默认安装的版本)

最佳答案

感谢@metalisticpain 在上面发表的评论,我现在已经开始工作了。问题是由于我错过了创建覆盖率报告。

对于遇到同样问题的其他人,以下是我的解决方法...

首先我运行了覆盖工具(从我的项目目录的根目录):

coverage erase
coverage run --branch --source=oppia
coverage xml -i

然后将 Sonar 扫描仪指向这个 coverage.xml 文件:

sonar-scanner \
-Dsonar.projectKey=django_oppia \
-Dsonar.organization=alexlittle-github \
-Dsonar.sources=. \
-Dsonar.host.url=https://sonarcloud.io \
-Dsonar.login=xxxxxxxxxx \
-Dsonar.exclusions=docs/_build/**/*,tests/**/*,oppiamobile/settings_secret.py \
-Dsonar.python.coverage.reportPath=./coverage.xml

我添加了一些额外的排除项,但真正不同的是将 reportPaths 添加到 coverage.xml

关于python - SonarQube - 是否有关于如何解决覆盖问题的基本示例/解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54429027/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com