Reputation: 5235
running docker mhart/alpine-node:8 on macOS with
nodejs (6.10.3-r0) (18/18) yarn 0.24.6 jest 20.0.4
I have a __tests__/index.test.js file however, when running the code
node_modules/.bin/jest --watchAll
I get the below output
No tests found
In /usr/src/app
5 files checked.
testMatch: /__tests__//*.js?(x),**/?(*.)(spec|test).js?(x) - 1 match
testPathIgnorePatterns: /node_modules/,/src,src - 0 matches
Pattern: "" - 0 matches
I've re-installed the package numbers times but to no avail.
Upvotes: 62
Views: 129942
Reputation: 8655
If writing tests in TypeScript, it is also worth checking auto-imports. Sometimes IDEs get fooled and import something like:
import { describe } from 'node:test';
Remove it. With @types/jest
in place, describe
should be recognized without this imports.
Upvotes: 0
Reputation: 149
I was having a No tests found issue. The problem for me was in package.json. I had a folder in jest.roots that didn´t exist.
Upvotes: 0
Reputation: 11
I've been wrestling with this annoying anonymous issue, but I find the tedious solution for it.
if you type the test command like this npm test .\repeatString.spec.js
or npm run test .\repeatString.spec.js
you've done it right but it won't work.
I just removed .\
from the command and it worked perfectly try it without .\
before the file path
Upvotes: 1
Reputation: 649
For me i'm using the vscode plugin and the fix for me was in .vscode/settings.json add this setting right here
"jest.jestCommandLine": "node_modules\\.bin\\jest"
Upvotes: 1
Reputation: 21757
If you have file structure such as the following
myFolder
│ myFile1.js
│ myFile2.js
│ ...
│
└───__tests__
myFile1.spec.js
myFile2.spec.js
...
then you need to have in jest.config.js
the following pattern for testMatch
property:
testMatch: ['**/__tests__/*.js?(x)'],
A simple example of jest.config.js
:
const jestConfig = {
verbose: true,
testURL: "http://localhost/",
'transform': {
'^.+\\.jsx?$': 'babel-jest',
},
testMatch: ['**/__tests__/*.js?(x)'],
}
module.exports = jestConfig
Upvotes: 23
Reputation: 2406
Moving the __tests__
filter into src
fixed the issue for me. Now its able to run the tests.
Upvotes: 4
Reputation: 6738
If you're using Typescript, I started getting the same No tests found
error after I updated Typescript to 3.8.3 from 3.3. Updating jest and ts-jest from version 23.* to 25.* fixed it for me.
Upvotes: 1
Reputation: 3322
You can try running jest
without any parameters. A key thing to note is the test file names have to follow the convention *.test.js
or *.spec.js
.
Upvotes: 8
Reputation: 287
In package.json there is a pattern that is used to find test file. In this pattern, you can change it according to your file location or make it the global pattern.
I wrote a test, not in the specific folder and follow a naming convention *.test.js
and change testMatch
"testMatch": [
"<rootDir>/src/**/*.(test).{js,jsx,ts,tsx}",
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,ts,tsx}"
],
Upvotes: 17
Reputation: 810
I had this error while attempting to run tests in a submodule of a project. Fixed the issue by testing the submodule in isolation, in a separate folder tree from the main project.
Upvotes: 3
Reputation: 61
If you want to run all the tests inside the tests folder you can simply do the following
jest __tests__ --watch
Upvotes: 5
Reputation: 2758
Your output says that testMatch
had 1 match
, which may be your __tests__/index.test.js
file. It seems that your testPathIgnorePatterns
is causing that test suite to be ignored. No tests found In /usr/src/app
says that Jest is looking for tests in /usr/src/app
, and testPathIgnorePatterns: /node_modules/,/src,src
says that Jest is ignoring files in /src
directories.
Either point Jest to look at the location of your __tests__/index.test.js
file if it is outside the /src directory, or stop testPathIgnorePatterns
from ignoring the /src directory.
Upvotes: 24