Jest provides multiple configuration methods to customize test behavior:
1. package.json Configuration:
json{ "jest": { "testEnvironment": "node", "coverageThreshold": { "global": { "branches": 80, "functions": 80, "lines": 80, "statements": 80 } } } }
2. jest.config.js Configuration File:
javascriptmodule.exports = { testEnvironment: 'jsdom', setupFilesAfterEnv: ['<rootDir>/jest.setup.js'], moduleNameMapper: { '^@/(.*)$': '<rootDir>/src/$1', '\\.(css|less|scss)$': 'identity-obj-proxy' }, collectCoverageFrom: [ 'src/**/*.{js,jsx,ts,tsx}', '!src/**/*.d.ts', '!src/**/*.stories.{js,jsx,ts,tsx}' ], testMatch: [ '**/__tests__/**/*.{js,jsx,ts,tsx}', '**/*.{spec,test}.{js,jsx,ts,tsx}' ], transform: { '^.+\\.(js|jsx|ts|tsx)$': 'babel-jest' } };
Common Configuration Options:
testEnvironment: Test environment (node, jsdom)setupFilesAfterEnv: Test environment setup filemoduleNameMapper: Module path mappingcollectCoverageFrom: Coverage collection scopetestMatch: Test file matching patternstransform: File transformation configurationcoverageThreshold: Coverage thresholdstestTimeout: Test timeout duration
Command Line Options:
jest --watch: Watch modejest --coverage: Generate coverage reportjest --updateSnapshot: Update snapshotsjest --verbose: Verbose output