What is ts-jest?
ts-jest is an npm package that allows users to run tests written in TypeScript directly, without having to precompile them to JavaScript. It is a Jest transformer with source map support that lets you use Jest to test projects written in TypeScript.
What are ts-jest's main functionalities?
TypeScript testing
This feature allows you to write Jest tests in TypeScript. The code sample demonstrates a simple test for a sum function.
import sum from './sum';
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
Source map support
Source map support for accurate stack traces in error messages, which is useful for debugging tests.
/* Source maps are automatically handled by ts-jest, so there's no specific code sample for this feature. It works under the hood to provide accurate stack traces in your tests. */
TypeScript configuration
Allows you to use your project's TypeScript configuration or specify a custom one for testing purposes.
/* ts-jest uses the tsconfig.json file in your project to understand how to compile your TypeScript code. You can also specify a different configuration file for ts-jest if needed. */
Coverage reports
Integrates with Jest's coverage reporting to include TypeScript files in coverage statistics.
/* To collect coverage, you can use Jest's built-in coverage collection feature with ts-jest. */
jest --coverage
Other packages similar to ts-jest
babel-jest
babel-jest is a Jest plugin that allows you to use Babel to transform your JavaScript code. It is similar to ts-jest but is focused on JavaScript with Babel transformations rather than TypeScript.
jest
Jest itself is a testing framework that can work with TypeScript when configured with the appropriate preprocessor (like ts-jest). It provides the overall testing framework that ts-jest plugs into.
mocha
Mocha is another testing framework that can be used with TypeScript when combined with a TypeScript compiler like ts-node. It is an alternative to Jest and thus to ts-jest, but it requires additional setup for working with TypeScript.
karma-typescript
karma-typescript is a Karma plugin that compiles and bundles TypeScript on the fly. It is similar to ts-jest in that it allows for testing TypeScript code, but it is designed to work within the Karma test runner ecosystem.
ts-jest
ts-jest
is a TypeScript preprocessor with source map support for Jest that lets you use Jest to test projects written in TypeScript.
It supports all features of TypeScript including type-checking. Read more about Babel7 + preset-typescript
vs TypeScript (and ts-jest
).
We are not doing semantic versioning and 23.10 is a re-write, run npm i -D ts-jest@"<23.10.0" to go back to the previous version |
---|
View the online documentation (usage & technical)
Ask for some help in the ts-jest
community of Slack
We're looking for collaborators! Want to help improve ts-jest
?
Getting Started
These instructions will get you setup to use ts-jest
in your project. For more detailed documentation, please check online documentation.
| using npm | using yarn |
---|
Prerequisites | npm i -D jest typescript | yarn add --dev jest typescript |
Installing | npm i -D ts-jest @types/jest | yarn add --dev ts-jest @types/jest |
Creating config | npx ts-jest config:init | yarn ts-jest config:init |
Running tests | npm t or npx jest | yarn test or yarn jest |
Built With
- TypeScript - JavaScript that scales
- Jest - Delightful JavaScript Testing
ts-jest
- Jest processor for TypeScript (yes, ts-jest
uses itself for its tests)
Contributing
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Versioning
We DO NOT use SemVer for versioning. Though you can think about SemVer when reading our version, except our major number follows the one of Jest. For the versions available, see the tags on this repository.
Authors/maintainers
See also the list of contributors who participated in this project.
Supporters
License
This project is licensed under the MIT License - see the LICENSE.md file for details