"No tests found" when 运行 从命令行开玩笑
"No tests found" when running jest from command line
在使用 create-react-app
构建的 React 项目中,测试文件位于他们需要测试的代码旁边的同一文件夹中,如下所示:
|- /src/path
| |- List.tsx
| |- List.test.tsx
尝试 运行 npx jest
或使用全局 jest
时,我得到以下结果:
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
- 反过来 运行 来自 package.json
的脚本 react-scripts test
- 工作正常并且能够找到 运行 项目中的所有测试(watch模式下)。
知道如何解决这个问题吗?
环境
- 节点:
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?$'
],
};
您尝试过使用 /
作为目录分隔符吗?
来自Jest docs:
See the micromatch package for details of the patterns you can specify.
Micromatch exclusively and explicitly reserves backslashes for escaping characters in a glob pattern, even on windows. This is consistent with bash behavior.
...
In other words, since \
is reserved as an escape character in globs, on windows path.join('foo', '*')
would result in foo\*
, which tells micromatch to match *
as a literal character. This is the same behavior as bash.
所以我会尝试:
module.exports = {
testMatch: [ '**/*.test.tsx' ]
};
根据 ,使用 create-react-app
构建的项目并不意味着直接使用 jest
进行测试。
应使用 react-scripts test
而不是 jest
以利用 CRA 设置生成的 Jest 配置。
在使用 create-react-app
构建的 React 项目中,测试文件位于他们需要测试的代码旁边的同一文件夹中,如下所示:
|- /src/path
| |- List.tsx
| |- List.test.tsx
尝试 运行 npx jest
或使用全局 jest
时,我得到以下结果:
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
- 反过来 运行 来自 package.json
的脚本 react-scripts test
- 工作正常并且能够找到 运行 项目中的所有测试(watch模式下)。
知道如何解决这个问题吗?
环境
- 节点:
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?$'
],
};
您尝试过使用 /
作为目录分隔符吗?
来自Jest docs:
See the micromatch package for details of the patterns you can specify.
Micromatch exclusively and explicitly reserves backslashes for escaping characters in a glob pattern, even on windows. This is consistent with bash behavior.
...
In other words, since
\
is reserved as an escape character in globs, on windowspath.join('foo', '*')
would result infoo\*
, which tells micromatch to match*
as a literal character. This is the same behavior as bash.
所以我会尝试:
module.exports = {
testMatch: [ '**/*.test.tsx' ]
};
根据 create-react-app
构建的项目并不意味着直接使用 jest
进行测试。
react-scripts test
而不是 jest
以利用 CRA 设置生成的 Jest 配置。