89
votes

I'm using jest and enzyme with my create-react-app project. When I run npm test, I get an output that shows the names of the test files that passed but I'd like the output to also include the names of the tests.

Example:

Button.test.js

it ('renders button', () => {
    const button = shallow(<Button type="save"/>);
    expect(toJson(button)).toMatchSnapshot();
});

Right now when I run npm test the output is just:

PASS src/Button.test.js"

and the number of passed and failed tests (when the tests are successful). I would like the output to include "renders button" and any other test descriptions (like how the output looks when an rspec test is run).

5

5 Answers

156
votes

From Jest's command-line options docs

--verbose

Display individual test results with the test suite hierarchy.

So running

jest --verbose

Will print all the names in describe, it, test blocks.
If you're running tests with yarn, you can do

yarn test --verbose

If you're running tests with npm, you can do

npm test -- --verbose

If you want to make this default, change your test script in package.json

"test": "react-scripts test --env=jsdom --verbose",

Now both yarn test and npm test should show all test names.

20
votes

The --verbose flag sounds like it might do what you are looking for. According to the docs, it displays individual test results.

17
votes

Note that, instead of

jest --verbose

you can also set verbose to true in jest.config.js:

// jest.config.js
module.exports = {
  ...
  verbose: true,
}
8
votes

I was having the same issue with create-react-app (using both jest and enzyme), but was able to get the tests to appear after appending the existing test script in package.json with --verbose=true. So it now appears "test": "react-scripts test --env=jsdom --verbose=true"

1
votes

after doing this configuration in package.json( "test": "react-scripts test --env=jsdom --verbose",) try running your test by npm test.

Note : with npm run test description is not reflecting for me as well.