Sonarqube:行超出范围,因为文件在与主文件合并后会缩小



master上有一个fileA(假设它由1000行组成(

我们在feature_branchfileA的长度为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 行

但是coverage是在合并之前(在以前的作业中(运行的,因此它包括> 1000 行的结果(合并后的fileA的长度(

这会导致(我相信(以下错误:

ERROR: Error during SonarQube Scanner execution
java.lang.IllegalStateException: Line 1040 is out of range in the file path/to/fileA.py (lines: 1000)

我们该怎么做呢?

SonarPython与所有导入覆盖率报告的代码分析器一样,要求分析的源代码与用于生成覆盖率报告的源代码严格相同。 首先,您应该质疑在运行声纳扫描仪之前合并分支的需求。 而且,如果您确实需要在与主站合并的分支上运行声纳扫描仪,则还需要在与主站合并的同一分支上运行覆盖率分析。

相关内容

最新更新