# What changed in testem

> 32 changes in testem 1 to 3 from its official release notes, upgrade guides and advisories: 9 breaking, 4 new APIs and options. Each one cited. Sources checked 2026-11-15. HTML: https://unstale.sh/npm/testem/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## testem 3

### Breaking changes

- The server no longer serves sibling directories whose paths share the current working directory prefix. (3.21.4) — [release notes](https://github.com/testem/testem/releases/tag/v3.21.4)
- busterjs support was removed. (3.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v3.0.0)
- Node 6 support was removed. (3.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v3.0.0)

### New APIs and options

- Added socket_server_options to the config file. (3.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v3.0.0)

### Tooling

- Added browser-relogin events. (3.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v3.0.0)

### Fixes and other changes

- Keeps decycle from throwing on hostile objects. (3.21.5) — [release notes](https://github.com/testem/testem/releases/tag/v3.21.5)
- Server error responses are served as text/plain. (3.21.5) — [release notes](https://github.com/testem/testem/releases/tag/v3.21.5)
- Firefox background timers stay on the foreground floor. (3.21.3) — [release notes](https://github.com/testem/testem/releases/tag/v3.21.3)
- Fixes loading the Headless Firefox profile. (3.21.3) — [release notes](https://github.com/testem/testem/releases/tag/v3.21.3)
- On Windows, checks for self.process before calling kill. (3.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v3.0.0)

## testem 2

### Breaking changes

- The all-test-results event no longer emits all results. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)
- IE 8 support was removed. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)
- Support for Node 0.10 and 0.12 was removed. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)

### New APIs and options

- A new format allows different browser args in different modes. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)

### Fixes and other changes

- Error messages are displayed correctly when a hook fails to run. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)
- The max depth error message was improved. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)
- Prevented leaked runners and subprocesses. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)
- Fixed TestemConfig always being reset to {}. (2.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v2.0.0)

## testem 1

### Breaking changes

- Testem now bails by default on global errors; set bail_on_uncaught_error to false to disable this behavior. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Embedded test frameworks were removed; frameworks are loaded from the internet, or you can inject your own framework to use a custom version or avoid a network dependency. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Browsers launched without protocol: browser no longer establish a WebSocket connection. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)

### New APIs and options

- Testem now allows using custom data directories. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Provides a way to manually hook into the test framework. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)

### Behavior and default changes

- css_files can now be used with framework: custom. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Notifications are supported on more operating systems. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Skipped tests are now output by the tap reporter. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)

### Tooling

- Linux browsers are now wrapped in dbus-launch. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Skipped tests are now output by the xunit reporter. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)

### Fixes and other changes

- Bail out messages are now reported in a well-formed format. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Fixed merging of config, default, and runtime options. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Fixed lazy instrumentation of mocha. (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
- Fixed testem.restart(). (1.0.0) — [release notes](https://github.com/testem/testem/releases/tag/v1.0.0)
