UNPKG

bamboo-jest-reporter

Version:

A reporter for Jest which parses the coverage-, snapshot- and test-results to a Mocha Test Parser format

135 lines (123 loc) 3.76 kB
# Bamboo jest reporter An Atlassian Bamboo reporter for Jest tests. This reporter will generate test results for: * Jest tests * Coverage * Obsolete snapshots Tests / coverage / snapshots can be separately disabled by environment variables: * JEST_REPORTER_ADD_TESTS=false (only report coverage and/or obsolete snapshots) * JEST_REPORTER_ADD_COVERAGE=false (do not report coverage drops) * JEST_REPORTER_SNAPSHOTS_ADD_OBSOLETE=false (do not report obsolete snapshots as a failure) This project was started based on https://github.com/adalbertoteixeira/jest-bamboo-formatter # Installation Install and add the reporter to the development dependencies in package.json: ``` npm i bamboo-jest-reporter --save-dev ``` # Configuration ##### Configure an npm test script for your project Add the test npm script in your package.json ``` "scripts": { "test": "jest" } ``` #### Jest configruation Configuring Jest can be done either in a configuration file (default:'jest.config.js') or in 'package.json': https://jestjs.io/docs/en/configuration #### Add reporter Add the following line to your configuration to add this reporter: ``` reporters: [ "default", "bamboo-jest-reporter" ], ``` If you do not need the default Jest reporter (the default Jest reporter prints the Jest results in the bash/cmd-client) ``` reporters: [ "bamboo-jest-reporter" ], ``` #### Add coverage thresholds To add code coverage thresholds, add the following block to the configuration: ``` coverageThreshold: { global: { branches: 100, functions: 100, statements: 100, lines: 100 } }, ``` ##### Make Jest output coverage info To include coverage: simply collectCoverage to the Jest config ``` collectCoverage: true ``` Or configure npm test to collect coverage as well ``` "scripts": { "test": "jest --coverage" } ``` #### Sample configurations ##### jest.config.js ``` module.exports = { collectCoverage: true, coverageDirectory: "coverage", reporters: [ "defaults", "bamboo-jest-reporter" ], collectCoverageFrom: [ "**/*.js" ], coverageThreshold: { global: { branches: 100, functions: 100, statements: 100, lines: 100 } } } ``` ##### Alternative: package.json ``` jest: { collectCoverage: true, coverageDirectory: "coverage", reporters: [ "defaults", "bamboo-jest-reporter" ], collectCoverageFrom: [ "**/*.js" ], coverageThreshold: { global: { branches: 100, functions: 100, statements: 100, lines: 100 } } } ``` # Usage A mocha test report will be created (jest.json) after running: ``` npm test ``` You can disable: * reporting of Jest test-results: set an environment variable in your bamboo task JEST_REPORTER_ADD_TESTS=false * reporting of coverage: set an environment variable in your bamboo task JEST_REPORTER_ADD_COVERAGE=false * reporting of obsolete snapshots: set an environment variable in your bamboo task JEST_REPORTER_SNAPSHOTS_ADD_OBSOLETE=false By default tests / coverage and obsolete snapshots are all reported. When all reporting is on, the following scenarios will be logged as failures: * When a Jest test fails * When the coverage thresholds are not met (only when configured in the jest-configuration) * When obsolete snapshots are found (if Jest snapshots are configured) Prevent your Bamboo task from failing when the tests fail (exit 0): ``` #!/usr/bin/env bash if ! npm test then echo "The automated jest tests did not pass. Please check the tests-tab" exit 0 fi ``` Make Bamboo fail by interpreting the test-results: Add a 'Mocha Test Parser'-task to your bamboo-job. Set 'jest.json' as testfile pattern.