新闻资讯

新闻资讯

current position: Home > News Center > Industry News

How to Read Yarn Test Report Correctly?

2026-03-01 03:41:58
times
How to Read Yarn Test Report Correctly?

How to Read Yarn Test Report Correctly

When you run `yarn test` in a JavaScript/TypeScript project, Yarn executes the test script defined in your `package.json` (often using tools like Jest, Mocha, or Vitest) and generates a report summarizing results. Understanding this report is critical for debugging failures, improving test quality, and ensuring your code works as expected. Below is a step-by-step guide to interpreting Yarn test reports effectively.

1. Start with the Summary Snapshot

The first section of the report gives a high-level overview of the test run. It typically includes:

- Total test suites (groups of related tests) executed.

- Number of tests passed, failed, and skipped.

- Total time taken for the run.

For example:

```

Test Suites: 5 passed, 1 failed, 6 total

Tests: 28 passed, 2 failed, 3 skipped, 33 total

Time: 4.5s

```

This snapshot tells you immediately if there are issues to address. If tests failed, focus on those first; if skipped tests are present, investigate why they’re not running (e.g., marked with `.skip()` or conditional logic).

2. Analyze Failed Tests in Detail

Failed tests are the most critical part of the report. Each failed test includes:

- Test Context: The hierarchy of `describe` (suite) and `it` (test case) blocks to identify which specific test failed.

- Error Message: A clear explanation of why the test failed (e.g., assertion mismatch, uncaught exception).

- Stack Trace: The sequence of function calls leading to the error, including file names and line numbers.

Example of a Failed Test

Suppose you have a test for a `calculator.subtract` function:

```

FAIL src/utils/calculator.test.js

Calculator Functions

✓ adds two numbers (6ms)

✕ subtracts two numbers (4ms)

● Calculator Functions › subtracts two numbers

expect(received).toBe(expected) // Object.is equality

Expected: 1

Received: 2

15 | test('subtracts two numbers', () => {

16 | const result = calculator.subtract(3, 1);

> 17 | expect(result).toBe(1);

| ^

18 | });

at Object.toBe (src/utils/calculator.test.js:17:20)

```

Key Takeaways:

- The test `subtracts two numbers` in the `Calculator Functions` suite failed.

- The assertion expected `1` but got `2`—so the `subtract` function is returning an incorrect value.

- The error occurred at line 17 of `calculator.test.js`, pointing to the assertion. You should then check the `subtract` function in `calculator.js` to fix the bug.

Handling Uncaught Exceptions

If a test fails due to an uncaught error (e.g., a reference error), the stack trace will show where the exception originated:

```

● User Authentication › logs in with valid credentials

ReferenceError: fetch is not defined

at loginUser (src/auth.js:8:5)

at Object. (src/auth.test.js:12:20)

```

Here, `fetch` is not available in Node.js—fix this by mocking `fetch` with tools like `jest-fetch-mock`.

3. Understand Skipped Tests

Skipped tests (marked with `.skip()` or `xit`) are tests that weren’t executed. Common reasons:

- Pending work (e.g., unimplemented features).

- Flaky tests (random pass/fail) temporarily disabled.

- Conditional execution (e.g., environment-specific tests).

Action: Don’t ignore skipped tests—either fix and re-enable them, remove irrelevant ones, or address flakiness (e.g., mock external dependencies).

4. Interpret Coverage Reports (If Enabled)

If your test script includes coverage (e.g., `jest --coverage`), the report shows how much code is tested. Key metrics:

- Statements: % of code lines executed.

- Branches: % of conditional branches (e.g., `if/else`) covered.

- Functions: % of functions called.

- Lines: % of lines run (excludes comments).

Example Coverage Snapshot

```

-------------------|---------|----------|---------|---------|-------------------

File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line s

-------------------|---------|----------|---------|---------|-------------------

All files | 85.71 | 70.0 | 90.91 | 85.71 |

calculator.js | 100.0 | 100.0 | 100.0 | 100.0 |

auth.js | 75.0 | 50.0 | 80.0 | 75.0 | 8, 15-17

-------------------|---------|----------|---------|---------|-------------------

```

Key Takeaways:

- `auth.js` has low coverage: only 75% of statements and 50% of branches are covered.

- Uncovered lines (8,15-17) indicate untested parts (e.g., error handling for invalid credentials).

- Focus on critical paths (login, payment processing) first to reduce bug risk.

To get a visual report, run `yarn test --coverage --coverageReporters html`—open `coverage/lcov-report/index.html` in a browser to see untested lines.

5. Check Test Duration

Slow tests slow down workflows and CI/CD pipelines. The report highlights slow tests (e.g., >1s):

```

Slow Tests:

● User Profile › updates user details (2.1s)

● Order Processing › creates a new order (1.8s)

```

Action: Optimize slow tests by mocking external services, reducing setup steps, or splitting large tests.

Common Pitfalls to Avoid

1. Ignoring Skipped Tests: Accumulating skipped tests leads to untested code.

2. Misinterpreting Stack Traces: Root causes may be in application code, not test files.

3. Overlooking Coverage Gaps: Low coverage in critical areas is a red flag.

4. Ignoring Flaky Tests: Fix them by stabilizing data or mocking non-deterministic code.

Tips for Effective Analysis

- Verbose Mode: Run `yarn test --verbose` for detailed logs.

- Filter Tests: Focus on specific failures with `yarn test `.

- CI Artifacts: Download reports from CI pipelines (GitHub Actions, GitLab CI) for detailed errors.

- Enforce Coverage Thresholds: Use tools like ESLint to require minimum coverage before merging.

Conclusion

Reading Yarn test reports correctly is essential for maintaining a reliable codebase. By focusing on summaries, analyzing failures, understanding coverage gaps, and addressing slow/skipped tests, you can improve your test suite’s effectiveness and catch bugs early. A well-maintained test report is a window into your application’s health.

(Word count: ~1000)

Previous:None

Recently Viewed:

  • menu

Contact Us

15950999188

Company Address

No.488 shannan West Road, Taicang, Suzhou, Jiangsu, China

official website
Copyright © Suzhou Qitai Textile Technology Co. All rights reserved record number:苏ICP备2023029896号 Disclaimer