代码之家  ›  专栏  ›  技术社区  ›  alexmngn

使用Jest忽略testMatch中的特定文件夹模式

  •  14
  • alexmngn  · 技术社区  · 8 年前

    我试图忽略中的特定文件夹 testMatch 玩笑的模式。

    我在一个 __tests__ 文件夹,我希望能够有一个文件夹 __config__ 其中包含所有应忽略的文件。

    /__tests__
      /__config__
        someConfig.jsx
      /MyComponent.jsx
    /MyComponent.jsx
    

    我在中的测试 __测试__ 文件夹将从导入文件 __配置__ 文件夹,所以我不想忽略它们 transformIgnorePatterns .

    但如果我不忽略该文件夹,Jest会尝试在该文件夹中运行并返回一个错误:

    失败 src/components/__tests__/__config__/someConfig.jsx

    测试套件必须至少包含一个测试。

    我尝试了几种不同的模式,但我找不到一种方法来忽略 __配置__ 文件夹

    testMatch: [
      "**/__tests__/!(__config__)/**/*.(js)?(x)", // Doesn't work
      "**/__tests__/(**|!__config__)/*.(js)?(x)", // Doesn't work
      "**/__tests__/(**|?!__config__)/*.(js)?(x)", // Doesn't work
      "**/__tests__/{**,!__config__}/*.(js)?(x)", // Doesn't work
    ],
    

    你知道我怎么能这样忽略子文件夹吗?

    3 回复  |  直到 6 年前
        1
  •  18
  •   GibboK    8 年前

    尝试使用 testPathIgnorePatterns 相反

    如果测试路径与任何模式匹配,将跳过它。

    使用字符串标记包括项目根目录的路径。

        2
  •  0
  •   FiveOFive    4 年前

    您还可以排除 testMatch 使用求反的数组 ! . 例如:

    'testMatch': [
        '**/__tests__/**/*.+(ts|tsx|js)',
        '!**/excludeMe.ts'
      ],
    

    请注意,顺序很重要。

    每个glob模式都是按照配置中指定的顺序应用的。例如[”! / 固定设施 / ", " / 测验 / / .js“]不会排除 固定设施 因为否定被第二个模式覆盖。为了在本例中使被否定的glob工作,它必须在 / 测验 / / .js。

    https://jestjs.io/docs/configuration#testmatch-arraystring

        3
  •  -1
  •   Nikita S    8 年前

    尝试以下模式:

    测试匹配:['***/-测试--/?(*)(测试)。js?(x) “],

    这对我有用。 我的文件夹结构是: --测试-- 授权。测验js公司 使用者测验js公司 路线 - - 其他文件夹。