terminal : azure-quickstart/data-access
npm i -D jest typescript
npm i -D ts-jest @types/jest
npx ts-jest config:init
azure-quickstart/data-access/jest.config.js
module.exports = {
roots: ["<rootDir>/."],
preset: 'ts-jest',
testEnvironment: 'node',
testMatch: ['**/**/*.test.ts'],
coverageReporters: ['json', 'lcov'],
coverageDirectory: 'coverage',
collectCoverageFrom: [
"**/*.{js,jsx,ts}",
"!**/node_modules/**",
"!**/dist/**"
]
};
azure-quickstart/data-access/package.json
...
"scripts": {
"test:ci": "npx jest --watchAll=false --coverage=true",
"test": "npx jest --watch"
},
...
azure-quickstart/data-access/azure-pipelines.yml
>> UPDATE NPM BUILD TASK
>> Add 'npm run test:ci' before build production
...
# Build project and run tests
- task: Bash@3
displayName: 'NPM: Prepare binaries and run tests'
inputs:
targetType: 'inline'
script: |
export NODE_OPTIONS=--max_old_space_size=16384
npm ci
npm run test:ci
npm run build:production
workingDirectory: 'data-access'
...
>> UPDATE SONAR CLOUD PREPARE TASK
>> Add sonar.javascript.lcov.reportPaths to extraProperties
...
# Set up SonarCloud
- task: SonarCloudPrepare@1
displayName: 'SonarCloud: Prepare analysis configuration'
inputs:
SonarCloud: 'sonarcloud'
organization: 'simnova'
scannerMode: 'CLI'
configMode: 'manual'
cliProjectKey: 'sharethrift-data-access'
cliProjectName: 'sharethrift-data-access'
cliSources: './data-access'
extraProperties: |
sonar.javascript.lcov.reportPaths=$(System.DefaultWorkingDirectory)/data-access/coverage/lcov.info