test@0.6.0
Breaking Changes📦 remixView on GitHub →
⚠ 3 breaking✨ 4 features🐛 1 fixes🔧 10 symbols
Summary
The Remix test runner has been updated with breaking changes to its configuration and API, including the removal of standalone executables and config file discovery. New features include `--only` and `--quiet` flags for focused and concise test runs, and improved handling of `NODE_ENV` and `.only` filtering.
⚠️ Breaking Changes
- Removed executable `remix-test.config.ts` and `remix-test.config.js` discovery, along with the `config` path option from `runRemixTest()`. Programmatic API now accepts structured invocation options only. For CLI usage, move static test settings under `remix.json#test`.
- Removed the standalone `remix-test` executable. Use `remix test` for command-line test runs. `runRemixTest()` from `@remix-run/test/cli` now accepts typed runner options (e.g., `type`, `glob`, `concurrency`) instead of an `argv` array and no longer reads `process.argv` or handles CLI help.
- Removed `getRemixTestHelpText()` export as CLI help handling is now managed by `remix test -h`.
Migration Steps
- For CLI usage, move static test settings from `remix-test.config.ts` or `remix-test.config.js` to `remix.json#test`.
- Replace calls to the standalone `remix-test` executable with `remix test`.
- Update programmatic calls to `runRemixTest()` from `@remix-run/test/cli` to pass structured options (e.g., `type: ['server']`, `concurrency: 1`) instead of an `argv` array.
✨ New Features
- Added a `--only` CLI flag and `only` config option to focus tests by matching suite names or full test names.
- Added a `--quiet`/`-q` CLI flag to omit skipped tests from reporter output.
- The `remix test` command now defaults `NODE_ENV` to `test` when it is not already set, enabling test-specific resources like in-memory databases.
- The `coverage.enabled` option in test configurations now accepts `'inherit'` to defer coverage enablement to the config file while still allowing refinement of other coverage settings.
🐛 Bug Fixes
- Fixed `.only` filtering so focused tests and suites apply across the entire test module, not just the nearest `describe` block. When `describe.only` and `it.only` are both present, the runner now executes the union of focused suites and focused tests.