在React-typescript中指定jest测试文件目录

时间:2019-12-10 09:33:14

标签: reactjs typescript jestjs

我只希望测试文件位于src外部的特定测试目录中。

简单的例子:

simple-app

 1.src
 2.tests

玩笑配置:

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'node',
  verbose: true,
  roots: ['<rootDir>/src'],
  transform: {
    '^.+\\.tsx?$': 'ts-jest',
  },
  testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
  moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
  snapshotSerializers: ["enzyme-to-json/serializer"],
  setupFilesAfterEnv: ["<rootDir>src/setupEnzyme.ts"],
  moduleNameMapper: {
    "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__mocks__/fileMock.js",
    "\\.(css|less|scss|sass)$": "identity-obj-proxy"}
};

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react"
  },
  "include": [
    "src"
  ]
}

我通过以下方式在package.json中指定了我的测试命令:

  "test:local": "jest ./tests/local.test.ts",

我尝试了很多次,但是没有用。任何帮助将不胜感激?

1 个答案:

答案 0 :(得分:0)

在jest config中,如果要测试ouside src目录,则应删除src路径。

这里是示例: 看起来像roots: ['<rootDir>/'],。我以为那是可行的。