jest.config.js 怎么配置

项目 vue3 + quasar + jest

jest 依赖包: 

1. "@testing-library/vue": "^8.1.0",

2. "@types/jest": "^29.5.12",

3. "jest": "^29.5.0",

4. "jest-environment-jsdom": "^29.7.0",

5. "jest-junit": "^16.0.0",

6. "jest-transform-stub": "^2.0.0",

7. "ts-jest": "^29.2.4"

8. "majestic": "^1.8.1",

我的配置文件参考

/**

* For a detailed explanation regarding each configuration property, visit:

* https://jestjs.io/docs/configuration

*/

/** @type {import('jest').Config} */

const config = {

  globals: {

    __DEV__: true,

    // TODO: Remove if resolved natively

    // See https://github.com/vuejs/@vue/vue3-jest/issues/175

    // '@vue/vue3-jest': {

    //  pug: { doctype: 'html' }

    // },

    // Remove if using `const enums`

    // See https://huafu.github.io/ts-jest/user/config/isolatedModules#example

  },

  // noStackTrace: true,

  bail: 0,

  // All imported modules in your tests should be mocked automatically

  // automock: false,

  // Stop running tests after `n` failures

  // bail: 0,

  // The directory where Jest should store its cached dependency information

  // cacheDirectory: "/private/var/folders/kn/s3nhkwrn229c78lsmwvlhps80000gn/T/jest_dx",

  // Automatically clear mock calls, instances, contexts and results before every test

  // clearMocks: true,

  // Indicates whether the coverage information should be collected while executing the test

  collectCoverage: false,

  // An array of glob patterns indicating a set of files for which coverage information should be collected

  // collectCoverageFrom: undefined,

  collectCoverageFrom: ['src/pages/**/*.{js,jsx,ts,tsx,vue}'],

  // The directory where Jest should output its coverage files

  coverageDirectory: 'coverage',

  // An array of regexp pattern strings used to skip coverage collection

  coveragePathIgnorePatterns: ['/node_modules/', '.d.ts$'],

  // Indicates which provider should be used to instrument code for coverage

  coverageProvider: 'babel',

  // A list of reporter names that Jest uses when writing coverage reports

  coverageReporters: ['json', 'text', 'lcov', 'clover'],

  // An object that configures minimum threshold enforcement for coverage results

  // coverageThreshold: undefined,

  // A path to a custom dependency extractor

  // dependencyExtractor: undefined,

  // Make calling deprecated APIs throw helpful error messages

  // errorOnDeprecated: false,

  // The default configuration for fake timers

  // fakeTimers: {

  //  "enableGlobally": false

  // },

  // Force coverage collection from ignored files using an array of glob patterns

  // forceCoverageMatch: [],

  // A path to a module which exports an async function that is triggered once before all test suites

  // globalSetup: undefined,

  // A path to a module which exports an async function that is triggered once after all test suites

  // globalTeardown: undefined,

  // A set of global variables that need to be available in all test environments

  // globals: {},

  // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.

  // maxWorkers: "50%",

  // An array of directory names to be searched recursively up from the requiring module's location

  moduleDirectories: ['node_modules'],

  // An array of file extensions your modules use

  moduleFileExtensions: [

    'js',

    'mjs',

    'cjs',

    'jsx',

    'ts',

    'tsx',

    'json',

    'vue',

    'node',

  ],

  // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module

  moduleNameMapper: {

    // '^quasar$': 'quasar/dist/quasar.esm.prod.js',

    '^~/(.*)$': '<rootDir>/$1',

    '^src/(.*)$': '<rootDir>/src/$1',

    '^app/(.*)$': '<rootDir>/$1',

    '^components/(.*)$': '<rootDir>/src/components/$1',

    '^layouts/(.*)$': '<rootDir>/src/layouts/$1',

    '^pages/(.*)$': '<rootDir>/src/pages/$1',

    '^assets/(.*)$': '<rootDir>/src/assets/$1',

    '^boot/(.*)$': '<rootDir>/src/boot/$1',

    '.*css$': '@quasar/quasar-app-extension-testing-unit-jest/stub.css',

    // '.vue$': '<rootDir>/tests/unit/empty.js',

    '.png$': '<rootDir>/tests/unit/empty.js',

  },

  // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader

  modulePathIgnorePatterns: ['<rootDir>/node_modules/'],

  // Activates notifications for test results

  // notify: false,

  // An enum that specifies notification mode. Requires { notify: true }

  // notifyMode: "failure-change",

  // A preset that is used as a base for Jest's configuration

  // preset: undefined,

  // Run tests from one or more projects

  // projects: undefined,

  // Use this configuration option to add custom reporters to Jest

  // reporters: undefined,

  // Automatically reset mock state before every test

  // resetMocks: false,

  // Reset the module registry before running each individual test

  // resetModules: false,

  // A path to a custom resolver

  // resolver: undefined,

  // Automatically restore mock state and implementation before every test

  // restoreMocks: false,

  // The root directory that Jest should scan for tests and modules within

  // rootDir: undefined,

  // A list of paths to directories that Jest should use to search for files in

  // roots: ['<rootDir>'],

  // Allows you to use a custom runner instead of Jest's default test runner

  // runner: "jest-runner",

  // The paths to modules that run some code to configure or set up the testing environment before each test

  // setupFiles: [],

  // A list of paths to modules that run some code to configure or set up the testing framework before each test

  // setupFilesAfterEnv: [],

  // The number of seconds after which a test is considered as slow and reported as such in the results.

  // slowTestThreshold: 5,

  // A list of paths to snapshot serializer modules Jest should use for snapshot testing

  // snapshotSerializers: [],

  // The test environment that will be used for testing

  testEnvironment: 'jsdom',

  // Options that will be passed to the testEnvironment

  // testEnvironmentOptions: {},

  // Adds a location field to test results

  // testLocationInResults: false,

  // The glob patterns Jest uses to detect test files

  testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],

  // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped

  testPathIgnorePatterns: ['/node_modules/'],

  // The regexp pattern or array of patterns that Jest uses to detect test files

  // testRegex: [],

  // This option allows the use of a custom results processor

  // testResultsProcessor: undefined,

  // This option allows use of a custom test runner

  // testRunner: 'jest-circus/runner',

  // A map from regular expressions to paths to transformers

  transform: {

    '^.+\\.(t|j)sx?$': 'ts-jest',

    '^.+\\.vue?$': '@vue/vue3-jest',

    // '^.+\\.(js|jsx)$': '<rootDir>/node_modules/babel-jest',

    '.+\\.(css|styl|less|sass|scss|png|jpg|ttf|woff|svg|woff2)$':

      'jest-transform-stub',

  },

  // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation

  transformIgnorePatterns: [

    '<rootDir>/node_modules/(?!(lodash-es|other-es-lib|react|React|dds/Avatar))',

  ],

  // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them

  // unmockedModulePathPatterns: undefined,

  // Indicates whether each individual test should be reported during the run

  // verbose: undefined,

  // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode

  // watchPathIgnorePatterns: [],

  // Whether to use watchman for file crawling

  // watchman: true,

  // collectCoverageFrom: [

  //  '<rootDir>/tests/unit/modules/dashboard/dashboard.test.js',

  //  '<rootDir>/tests/unit/modules/login/loginIndex.test.js',

  // ],

};

module.exports = config;

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,451评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,172评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,782评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,709评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,733评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,578评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,320评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,241评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,686评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,878评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,992评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,715评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,336评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,912评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,040评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,173评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,947评论 2 355

推荐阅读更多精彩内容