mirror of https://github.com/webpack/webpack.git
3.2 KiB
3.2 KiB
Webpack Test Suite Structure
This document explains the structure of the test/
directory in the Webpack project using Jest. The directory is organized into multiple folders and files, each serving a specific purpose in testing various aspects of Webpack’s functionality.
Folder and File Breakdown
1. __snapshots__/
- Purpose: Stores Jest snapshot files for comparing output consistency over time.
- Usage: Used for testing UI components, serialized data, or expected module outputs.
2. benchmarkCases/
- Purpose: Contains test cases for benchmarking Webpack's performance.
- Usage: Measures build times, memory usage, and optimization impact.
3. cases/
- Purpose: General test cases covering core functionalities.
- Usage: Includes unit and integration tests for various modules and features.
4. configCases/
- Purpose: Tests related to Webpack configurations.
- Usage: Ensures that Webpack’s configuration (e.g., loaders, plugins) functions correctly.
5. fixtures/
- Purpose: Stores sample/mock data used in tests.
- Usage: Helps in creating consistent test cases with predefined inputs.
6. helpers/
- Purpose: Utility functions and scripts to assist in testing.
- Usage: Provides reusable functions for mock data generation, cleanup, and assertions.
7. hotCases/
- Purpose: Focuses on Webpack’s Hot Module Replacement (HMR) functionality.
- Usage: Ensures live reloading and hot updates work correctly.
8. hotPlayground/
- Purpose: An experimental space for testing HMR features.
- Usage: Allows exploration of new HMR implementations.
9. memoryLimitCases/json
- Purpose: Contains test cases related to memory limits.
- Usage: Ensures Webpack doesn’t exceed memory constraints.
10. statsCases/
- Purpose: Tests focused on Webpack’s statistical outputs.
- Usage: Verifies correct bundle sizes, dependencies, and optimizations.
11. typesCases/
- Purpose: Type-checking tests, likely for TypeScript integration.
- Usage: Ensures proper type definitions and compliance.
12. watchCases/
- Purpose: Tests for Webpack’s watch mode functionality.
- Usage: Ensures file changes trigger correct rebuild behavior.
13. *.unittest.js
- Purpose: Contains unit tests for various functionalities.
- Usage: Ensures individual modules and functions work as expected.
14. BannerPlugin.test.js
- Purpose: Tests Webpack’s
BannerPlugin
functionality. - Usage: Ensures that the plugin correctly adds banners to the bundled files.
Testing Framework
- Jest is used for running tests.
- Snapshots help maintain consistency in output.
- Unit tests verify individual module functionality.
- Integration tests ensure multiple components work together.
How to Run Tests
To execute all tests, use the following command:
yarn test
For running specific tests:
jest cases/userLogic.test.js
Contribution Guide
- Add new test cases in the appropriate folder.
- Use Jest assertions and mocks for consistency.
- Run
yarn test
before pushing changes to validate functionality.