Q13 · 代码质量

以一个 Vue 项目为例,说一下 Sonar 的具体配置

SonarQubeVue覆盖率

⚡ 速记答案(30 秒)

  • sonar-project.properties:设置 sonar.projectKeysonar.sources=src、排除目录
  • sonar.javascript.lcov.reportPaths=coverage/lcov.info 配置覆盖率报告
  • CI 里:npm run test -- --coverage → 再执行 sonar-scanner
  • Vue 单文件组件需要配合相应的插件(如 sonarjs 支持)

📖 详细讲解

Vue 项目 Sonar 配置


sonar-project.properties


sonar.projectKey=vue-project
sonar.projectName=Vue Project
sonar.sources=src
sonar.tests=tests
sonar.exclusions=**/node_modules/**,**/dist/**,**/*.spec.ts
sonar.javascript.lcov.reportPaths=coverage/lcov.info
sonar.typescript.lcov.reportPaths=coverage/lcov.info

Jest 配置覆盖率


// jest.config.js
module.exports = {
  collectCoverage: true,
  coverageDirectory: 'coverage',
  coverageReporters: ['lcov', 'text'],
};

CI 配置


test:
  script:
    - npm run test:unit -- --coverage
    - sonar-scanner
💡
面试技巧:回答工程化问题时,结合你实际项目中的配置和优化经验,更有说服力。