Ajouter JUnit reporter avec Jest pour vos modules NodeJS
Commandes
Dans chaque module, lancer les commandes suivantes
npm install --save-dev jest jest-junit
Configurer Jest:
cat <<EOF > ./jest.config.js
// jest.config.js
module.exports = {
testTimeout: 30000,
reporters: [
'default',
[
'jest-junit',
{
outputDirectory: './reports',
outputName: 'test.xml',
},
],
],
};
EOF
Puis ajouter dans votre fichier .gitignore
, le répertoire reports/
Exemple avec CodeBuild et AWS
Créer le fichier buildspec:
cat <<EOF > ./buildspec.yml
version: 0.2
phases:
install:
commands:
# Install all dependencies (including dependencies for running tests)
- npm install
pre_build:
commands:
- npm run lint
- npm run test
- npm run audit
# Remove all dependencies not needed for the Lambda deployment package (the packages from devDependencies in package.json)
- npm prune --production
build:
commands:
# Use AWS SAM to package the application by using AWS CloudFormation
- aws cloudformation package --template template.yml --s3-bucket $S3_BUCKET --output-template template-export.yml
reports:
jest_reports:
files:
- test.xml
file-format: JUNITXML
base-directory: reports/
artifacts:
type: zip
files:
- template-export.yml
EOF
if using a monorepo:
reports:
jest_reports:
files:
- test.xml
file-format: JUNITXML
base-directory: "**/reports/"
discard-paths: no