Agora vamos analisar nosso código utilizando o SonarQube para isso, portanto vamos instalar um pacote em nossa aplicação, execute o comando abaixo no terminal, na raiz do projeto
npm install sonarqube-scanner@3.1.0 jest-sonar-reporter@2.0.0 -D
Agora vamos criar o arquivo de configuração do SonarQube na raiz do projeto.
Crie o arquivo "sonar-project.properties" com o conteúdo abaixo
sonar.projectKey=bank
sonar.sources=.
sonar.host.url=http://localhost:9000
sonar.token=sqp_4f5a679c6a898d9da21fe3bc330e95b2261020f3
sonar.tests=__tests__
sonar.testExecutionReportPaths=test-report.xml
sonar.test.inclusions=**/*.test.ts
sonar.exclusions=coverage/lcov-report/**/*.*, node_modules/**/*.*, jest.config.js, reports/**/*.*, features/**/*.*, cucumber.js
sonar.javascript.lcov.reportPaths=coverage/lcov.info
Lembre-se de alterar a chave "sonar.token" no arquivo para o token que o SonarQube gerou para você na atividade anterior.
Agora altere o arquivo ".gitignore", adicionando ao final do arquivo a seguinte linha
# SonarQube
.scannerwork
Altere o arquivo "package.json", adicionando a linha abaixo dentro de "scripts", não esqueça de colocar virgula no item acima, pois é a sintaxe do arquivo JSON
"sonar:scanner": "sonar-scanner"
Altere o arquivo "jest.config.js" conforme abaixo
/** @type {import('ts-jest').JestConfigWithTsJest} */
module.exports = {
verbose: true,
preset: 'ts-jest',
testEnvironment: 'node',
testMatch: ['<rootDir>/**/*.test.ts'],
testResultsProcessor: "jest-sonar-reporter",
};
Execute o Jest novamente
npx jest
Agora finalmente execute o Sonar Scanner que irá varrer seu projeto e levar a informações para o SonarQube
npm run sonar:scanner
Aguarde a finalização e vá até o navegador onde o SonarQube estava aberto para analisar os números do nosso código.