3

在构建的 React 项目create-react-app中,测试文件位于需要测试的代码旁边的同一文件夹中,如下所示:

|- /src/path
|  |- List.tsx
|  |- List.test.tsx

尝试运行npx jest或使用 globaljest时,我得到以下结果:

No tests found
In C:\src\path
  34 files checked.
  testMatch: **\*test.tsx,**/*test.tsx,src\**\*.test.tsx,src/**/*.test.tsx,C:\src\path\src\**\*.test.tsx,C:\src\path\src\**\*.test.tsx - 0 matches
  testPathIgnorePatterns: \\node_modules\\ - 34 matches
Pattern:  - 0 matches

运行npm test- 反过来运行脚本- 工作正常react-scripts testpackage.json并且能够找到并运行项目中的所有测试(在监视模式下)。

知道如何解决这个问题吗?

环境

  • 节点:10.15.0
  • npm:6.4.1
  • 反应脚本:2.1.3
  • 操作系统:Windows 10 1809 17763.316

jest.config.js

module.exports = {
  testMatch: [
    '**\\*test.tsx',
    '**/*test.tsx',
    'src\\**\\*.test.tsx',
    'src/**/*.test.tsx',
    '<rootDir>\\src\\**\\*.test.tsx',
    '<rootDir>/src/**/*.test.tsx',
    'src/.*|(.|/)(.test).tsx?$'
  ],
};
4

2 回答 2

5

根据这个答案,用 构建的项目create-react-app并不意味着直接用 进行测试jest

react-scripts test应该使用而不是jest使用由 CRA 设置生成的 Jest 配置。

于 2019-03-14T09:19:55.410 回答
3

您是否尝试过/用作目录分隔符?

来自Jest 文档

有关您可以指定的模式的详细信息,请参阅 micromatch 包。

来自Micromatch 文档

Micromatch 专门且明确地保留反斜杠以在 glob 模式中转义字符,即使在 Windows 上也是如此。这与 bash 行为一致。

...

换句话说,因为\\在 glob 中被保留为转义字符,所以在 windows 上path.join('foo', '*')会导致foo\\*,它告诉微匹配*作为文字字符进行匹配。这与 bash 的行为相同。

所以我会尝试:

module.exports = {
  testMatch: [ '**/*.test.tsx' ]
};
于 2019-03-07T16:35:10.430 回答