npx react-scripts test src/utils/product/ - run all tests inside product folder
npx react-scripts test src/utils/product/price.test.ts - run only tests from price file (.test.ts can be omitted)
If you have Jest installed globally:
jest -f ContactCard - runs only files named ContactCard (gives each test details)
jest -f service/api - runs all tests in api folder (no test details)
-f - can be omitted
jest -t "Contact Card" - runs ALL tests but skips them except those matching name after -t
-t means --testNamePattern
check if this works: jest -t "Contact Card" "ContactCard" ("Contact Card" - test name, "ContactCard" - test file name)
If you have an it/test inside of a describe block, you can run:
jest -t [describe] [it/test]
To skip some tests in your file put only, e.g:
test.only("should return...", () => {});
it.only("should return...", () => {});
describe.only("Profile", () => { ... });To skip a test add an x before it/test or describe:
xdescribe("Profile", () => {});
xit("should return...", () => {});TO VERIFY: try putting skip after it/test or describe: it.skip("should ...", () => {});
More on that here: https://stackoverflow.com/questions/42827054/how-do-i-run-a-single-test-using-jest
You can use the debug method, accessible from the screen object, to log the current HTML output of components:
it("displays contact card", () => {
render(<ContactCard />);
screen.debug();
});To generate a coverage report for a specific file run:
npx react-scripts test src/hooks/useCounter.test.ts --coverage --collectCoverageFrom=src/hooks/useCounter.ts
This will also work:
npx react-scripts test useCounter.test.ts --coverage --collectCoverageFrom=src/hooks/useCounter.ts
Then open report at: my-project/coverage/lcov-report/index.html. Note that the path might be different in your project.
If your test file runs but coverage shows
0%check if the file extension was put correctly, e.g.*.tsx/*.ts/*.jsx
-
Library react-app-rewired examples:
npx react-app-rewired test -t "Contact Card" - bad as it runs and skips all except tests matching "Contact Card"
npx react-app-rewired test -f ContactCard - good as it runs only files named ContactCard, and gives each test details
npx react-app-rewired test -f service/api - runs all tests in api folder, gives no test details
-f stands for file name
To generate and log instanbul coverage html report:
npx react-app-rewired test --coverage -f ContactCard