Load from `test/tsconfig.json` with ts-node.
npm install ts-node-test-registerUse test/tsconfig.json with ts-node for testing.
This register library load tsconfig.json file by following priority.
- project/{test}/tsconfig.test.json
- project/{test}/tsconfig.json
- project/tsconfig.test.json
- project/tsconfig.json
{test} is test directory by default.
You can specified the {test} by directories of package.json.
```
"directories": {
"test": "test"
},
Notes: Why need to load different tsconfig.json between main and test?
In some times, we use different tsconfig.json between main code and test code.
For example, you can enable allowJs in test code.
It supports gradual migration that convert JavaScript to TypeScript.
ts-nodeThis behavior is reverted in v6.0.0(v4) disable type-check by default.
- Release "Fast" By Default · TypeStrong/ts-node
The motivation is based on so not good experience.
- Type error reporting · Issue #79 · kulshekhar/ts-jest
- test(textlint-formatter): mocha runs fine while tsc cannot compile the script · Issue #448 · textlint/textlint: mocha runs fine while tsc cannot compile the script · Issue #448 · textlint/textlint")
This register library supports Mike Haas's opinion.
> test code is still code, if there's type errors in such test code, shouldn't it fail?
> --
Install with npm:
npm install ts-node ts-node-test-register --save-dev
:warning: ts-node is peerDependencies.
You need to install ts-node.
Using with mocha.
``
mocha --require ts-node-test-register "test/*/.ts"
Or define --require ts-node-test-register to .mocharc.{js,json,yml}.
``
├── package.json
├── .mocharc.json (--require ts-node-test-register)
├── src
│ └── index.ts
└── test
├── tsconfig.json // <= load this tsconfig.json
└── index-test.ts
For more details, see example.
See Releases page.
Install devDependencies and Run yarn test:
yarn test
yarn run test:example
Pull requests and stars are always welcome.
For bugs and feature requests, please create an issue.
1. Fork it!
2. Create your feature branch: git checkout -b my-new-featuregit commit -am 'Add some feature'
3. Commit your changes: git push origin my-new-feature`
4. Push to the branch:
5. Submit a pull request :D
MIT © azu