Jasmine
Jasmine is an open-source framework for testing JavaScript code that runs in browsers and Node.js.
What Jasmine is
Jasmine is an open-source framework for testing JavaScript code that runs in browsers and Node.js. Specs use a describe/it structure and expect matchers. The jasmine-core package has no external dependencies, and Jasmine does not rely on other JavaScript frameworks. For Node, developers can install the package locally with npm and invoke it using npx jasmine; the standalone distribution runs browser specs without other tools or a web server. Jasmine supports ES modules, and its Node setup can load CommonJS modules. The jasmine-browser-runner can run specs interactively in browsers or in CI with headless Chrome or Sauce Labs, and can connect to a user's own Selenium Grid as a remote browser grid. Teams can configure runners and use custom reporters and matchers, as well as randomized spec order. Jasmine supports JavaScript and TypeScript, lists parallel execution and built-in mocks, and is licensed under the MIT License. Browser and Node support follows a rolling window, so older platforms may receive best-effort support or be dropped in minor releases. The unmaintained karma-jasmine adapter depends on jasmine-core 4.x, which can prevent newer Jasmine features from working through it. The project directs users to GitHub to report issues and contribute.
Good
- Open source under the MIT License.
- jasmine-core has no external dependencies.
- Standalone distribution needs no web server.
- Supports ES modules and CommonJS in Node.
- Custom reporters, matchers, and runners are available.
Watch out
- Older platforms may lose support in minor releases.
- The unmaintained karma-jasmine adapter depends on jasmine-core 4.x.
Who it suits
Jasmine suits JavaScript and TypeScript developers who need browser or Node.js specs and prefer a framework without external dependencies in jasmine-core. Its browser runner options also suit teams running tests interactively or in CI.
Verdict
Jasmine offers browser and Node.js testing with configurable runners and several ways to execute specs. Check the rolling platform support and the karma-jasmine compatibility limitation if those affect your setup.
Plans and prices
From Jasmine's own pricing page, checked 9 Oct 2026.
| Plan | Price | What it gives you |
|---|---|---|
| Jasmine | Free | No pricing or usage limits stated |
The facts
Each one read from Jasmine's own pages, with the date it was checked.
Where it runs
- Browser runner
- The jasmine-browser-runner package can run specs interactively in browsers or in CI using headless Chrome or Sauce Labs.checked 9 Oct 2026
What it does
- Compatibility limit
- The FAQ says the unmaintained karma-jasmine adapter depends on jasmine-core 4.x, so newer Jasmine features may not work through it.checked 9 Oct 2026
- Customization
- Jasmine supports configurable runners, custom reporters, custom matchers, and randomized spec order.checked 9 Oct 2026
- Dependencies
- The jasmine-core package has no external dependencies, and Jasmine does not depend on other JavaScript frameworks.checked 9 Oct 2026
- Integrations
- The browser runner can use Sauce Labs or a user's own Selenium Grid as a remote browser grid.checked 9 Oct 2026
- License
- The Jasmine project repository states that the software is licensed under the MIT License.checked 9 Oct 2026
- Module support
- Jasmine supports ES modules, and its Node setup can also load CommonJS modules.checked 9 Oct 2026
- Node installation
- The Node package can be installed locally with npm and invoked using npx jasmine.checked 9 Oct 2026
- Purpose
- Jasmine is a framework for testing JavaScript code that runs in browsers and Node.js.checked 9 Oct 2026
- Standalone option
- The standalone distribution runs specs in a web browser without other tools, and it does not require a web server.checked 9 Oct 2026
- Support
- The project directs users to its GitHub repository to report issues and contribute.checked 9 Oct 2026
- Testing style
- Jasmine specs use JavaScript with a describe/it structure and expect matchers.checked 9 Oct 2026
- Version support
- Browser and Node support follows a rolling window; older platforms may be supported on a best-effort basis or dropped in minor releases.checked 9 Oct 2026
The full review of Jasmine
Jasmine is a free, open-source testing framework for JavaScript running in browsers and Node.js. It suits developers who want a framework-independent test layer with configurable execution, especially when the same project needs local, browser, CI and remote-grid runs. The main trade-off is its rolling platform-support window and limited compatibility with the unmaintained karma-jasmine adapter.
Overview
Jasmine keeps test authoring in JavaScript, using a readable describe/it structure and expect matchers. That makes it a focused choice for teams that do not want their test framework tied to another JavaScript framework. The jasmine-core package has no external dependencies, reducing the amount of infrastructure a project must bring in for unit tests.
Its scope covers both browser code and Node.js applications. JavaScript and TypeScript are supported, and parallel execution is available. Jasmine does not provide parameterized cases, so suites that depend heavily on data-driven test declarations may need a different approach or additional test structure.
Key features
The browser workflow is unusually flexible. The jasmine-browser-runner can launch specs interactively in a browser or run them in CI with headless Chrome or Sauce Labs. It can also use a user's Selenium Grid, which gives teams a path to remote-browser coverage without abandoning Jasmine's spec format. For small checks, the standalone distribution runs directly in a browser without a web server or other tooling.
Node users install the package locally with npm and invoke it through npx jasmine. The Node setup handles both ES modules and CommonJS, making it suitable for projects that are migrating module systems or maintain mixed code. Configurable runners, custom reporters and custom matchers let teams fit Jasmine into existing workflows rather than accepting one fixed execution and reporting model. Randomized spec order can expose order-dependent tests, while built-in mocks support isolated unit tests.
These controls matter most in teams maintaining several environments or a substantial CI pipeline. A small project may value the standalone browser option more than remote-grid integration, while a data-heavy suite should account for the absence of parameterized cases.
Pricing
Jasmine is open source and costs nothing under its Jasmine plan. There is no paid tier, seat charge, usage quota or stated usage limit, and no trial period because the software is already free. The repository is licensed under the MIT License, permitting use in commercial and noncommercial applications. Support is directed through the project's GitHub repository for issue reports and contributions.
Platforms
Jasmine supports Linux, macOS, Windows and the web. Browser execution can use interactive browsers, headless Chrome, Sauce Labs or a user's Selenium Grid. Node installation is local through npm. Support follows a rolling window: older platforms may receive only best-effort support or may be dropped in a minor release, so teams with fixed legacy environments should plan upgrades carefully.
Who it's for
Choose Jasmine if you need one JavaScript-oriented framework for browser and Node.js specs, want minimal core dependencies, or need to customize runners, reporters, matchers and execution order. It is also a strong fit for teams that need both local developer runs and CI or remote-browser execution.
Look elsewhere if parameterized testing is central to your suite, if your environment must remain on an older platform indefinitely, or if your pipeline depends on karma-jasmine. That adapter is unmaintained and depends on jasmine-core 4.x, so newer Jasmine capabilities may not work through it.
Pros and cons
Pros
- Framework-independent core: Jasmine does not depend on other JavaScript frameworks, and jasmine-core has no external dependencies.
- Broad execution choices: Browser, Node, standalone, headless Chrome, Sauce Labs and Selenium Grid options cover varied workflows.
- Adaptable suites: Custom runners, reporters, matchers, randomized order, parallel execution and built-in mocks provide practical control.
- No licensing cost: The MIT-licensed project has no stated seat or usage limits.
Cons
- No parameterized cases: Data-driven tests are not a built-in testing style.
- Rolling platform support: Older environments may receive only best-effort support or lose support in minor releases.
- Karma limitation: The unmaintained karma-jasmine adapter can block newer Jasmine features.
Alternatives
QUnit is another free, open-source JavaScript testing framework distributed through CDN, npm and Yarn; choose it when that distribution model or its Android, iOS and self-hosted reach fits better.
Kotest is free and separates its test framework, assertions library and property-testing projects, making it the alternative for teams wanting those components independently.
NUnit is a free, MIT-licensed option for projects targeting its supported platforms rather than JavaScript.
PHPUnit is free PHP tooling distributed as a PHAR or installed per project with Composer.
Vitest is a free, open-source alternative for Linux, macOS, Windows and web projects.
Pest is a free open-source PHP framework and requires PHP 8.4 or newer for Pest 5.
Rust libtest is free and built into Rust's standard-library test harness.
ScalaCheck is a free, BSD-3-Clause-licensed open-source library for Linux, macOS and Windows.
For broader comparisons, see Unit Testing Frameworks and JavaScript Testing Frameworks.
Verdict
Jasmine is a strong choice for developers who want a free, framework-independent JavaScript test system that runs in Node and browsers and can scale from standalone checks to CI and remote grids. Choose it for its dependency-light core and configurable runners; look elsewhere if parameterized cases, legacy platform stability or karma-jasmine compatibility is essential.





