Skip to content

Ignore files in jest watch mode #3923

@kumar303

Description

@kumar303

Do you want to request a feature or report a bug?

feature

What is the current behavior?

When I run jest --watch it watches all files and re-runs the tests when one of them changes.

What is the expected behavior?

This works as expected except when we use a webpack plugin that generates a webpack-assets.json file periodically. After editing a code file, the auto-generated assets file causes the tests to run twice which is slower than it needs to be.

It would be really helpful if I could configure the jest watcher to ignore changes to the webpack-assets.json file.

Please provide your exact Jest configuration and mention your Jest, node, yarn/npm version and operating system.

$ jest --version
v20.0.4
$ yarn --version
0.24.6
$ node --version
v6.10.3
$ watchman --version
4.7.0

Mac OS X 10.12.5

I know that #2516 was fixed but that solved it for code coverage only. It would be great to have a generic solution to this where we could just ignore files based on a list of patterns.

Jest config
module.exports = {
  collectCoverageFrom: ['src/**/*.{js,jsx}'],
  coveragePathIgnorePatterns: [
    '<rootDir>/node_modules/',
    '<rootDir>/src/core/server/webpack-isomorphic-tools-config.js',
    '<rootDir>/src/locale/',
  ],
  moduleDirectories: [
    'src',
    'node_modules',
  ],
  moduleFileExtensions: [
    'js',
    'json',
    'jsx',
  ],
  moduleNameMapper: {
    // Prevent un-transpiled react-photoswipe code being required.
    '^photoswipe$': '<rootDir>/node_modules/photoswipe',
    // Use the client-side logger by default for tests.
    '^core/logger$': '<rootDir>/src/core/client/logger',
    // Alias tests for tests to be able to import helpers.
    '^tests/(.*)$': '<rootDir>/tests/$1',
    // Replaces the following formats with an empty module.
    '^.+\\.(scss|css|svg|woff|woff2|mp4|webm)$': '<rootDir>/tests/emptyModule',
  },
  setupTestFrameworkScriptFile: '<rootDir>/tests/setup.js',
  testPathIgnorePatterns: [
    '<rootDir>/node_modules/',
    '<rootDir>/(assets|bin|config|coverage|dist|docs|flow|locale|src)/',
  ],
  testMatch: [
    '**/[Tt]est(*).js?(x)',
    '**/__tests__/**/*.js?(x)',
  ],
  transform: {
    '^.+\\.js$': 'babel-jest',
    // This transforms images to be a module that exports the filename.
    // Tests can assert on the filenname.
    '^.+\\.(jpg|jpeg|gif|png)$': '<rootDir>/tests/fileTransformer',
  },
  transformIgnorePatterns: [
    '<rootDir>/node_modules/',
  ],
  verbose: false,
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions