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.
To read TypeScript configuration files Jest requires ts-node . Make sure it is installed in your project.
The answer is down to Jest not being a real browser. You have access to all of the various DOM APIs when writing Jest tests but these are provided by JSDOM and your tests are actually running in Node. Jest has no native way to run your tests in a browser environment out of the box.
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.
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)'],
The simple example of jest.config.js
:
const jestConfig = { verbose: true, testURL: "http://localhost/", 'transform': { '^.+\\.jsx?$': 'babel-jest', }, testMatch: ['**/__tests__/*.js?(x)'], } module.exports = jestConfig
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With