Python Sonarqube:行超出范围,因为文件在与主文件合并后收缩
在Python Sonarqube:行超出范围,因为文件在与主文件合并后收缩,python,sonarqube,continuous-integration,gitlab,code-coverage,Python,Sonarqube,Continuous Integration,Gitlab,Code Coverage,在master上有一个fileA(假设它由1000行组成) 我们在feature\u分支,其中fileA的长度为1050行 在我们的CI管道上,我们正在运行coverage(这是一个Python项目),它生成coverage.xml,用作SQ的cov输入 我们的SQ预览阶段如下所示: - git config --global user.name "SonarQube" - git config --global user.email "sonarqube@somedomain.
master
上有一个fileA
(假设它由1000行组成)
我们在feature\u分支
,其中fileA
的长度为1050行
在我们的CI管道上,我们正在运行coverage
(这是一个Python项目),它生成coverage.xml
,用作SQ的cov输入
我们的SQ预览阶段如下所示:
- git config --global user.name "SonarQube"
- git config --global user.email "sonarqube@somedomain.com"
- git checkout origin/master
- git merge $CI_BUILD_REF --no-commit --no-ff
- sonar-scanner -Dsonar.analysis.mode=preview -Dsonar.gitlab.project_id=$CI_PROJECT_PATH -Dsonar.login=$SONARQUBE_TOKEN -Dsonar.gitlab.commit_sha=$CI_COMMIT_SHA -Dsonar.gitlab.ref_name=$CI_COMMIT_REF_NAME
except:
- master@mainprojectnamespace
问题如下:
合并后,fileA
最后(再次)有1000行
但是,覆盖范围
在合并之前运行(在上一个作业中),因此它包含行数>1000的结果(即合并后的文件a的长度)
这导致(我相信)以下错误:
ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Line 1040 is out of range in the file path/to/fileA.py (lines: 1000)
我们该怎么做呢?与导入覆盖率报告的所有代码分析器一样,Python要求分析的源代码与生成覆盖率报告所用的源代码完全相同。
首先,在运行声纳扫描仪之前,您应该挑战合并分支的需要。
而且,如果您确实需要在与master合并的分支上运行sonar scanner,还需要在与master合并的同一分支上运行覆盖率分析。sonar Python与导入覆盖率报告的所有代码分析器一样,要求分析的源代码与生成覆盖率报告所用的源代码完全相同。
首先,在运行声纳扫描仪之前,您应该挑战合并分支的需要。
而且,如果您确实需要在与master合并的分支上运行sonar scanner,您还需要在与master合并的同一分支上运行覆盖率分析