Awesome
espower-typescript
power-assert instrumentor for TypeScript
TypeScript versions
espower-typescript v10.x is compatible with TypeScript v2.7+
Usage (zero-config mode)
Install
$ npm install -D espower-typescript power-assert mocha typescript @types/node @types/mocha
Create a test file (intensionally failed)
// test/test.ts
import assert = require('assert');
describe('Array#join', () => {
it('joins all elements into a string with separator', () => {
assert(['a', 'b', 'c'].join(':') === 'a:b:c:');
});
});
Run test
$ ./node_modules/.bin/mocha --require espower-typescript/guess "test/**/*.ts"
Output
1) Array#join
joins all elements into a string with separator:
AssertionError [ERR_ASSERTION]: # test.ts:6
assert(['a','b','c'].join(':') === 'a:b:c:')
| | |
["a","b","c"] "a:b:c" false
CAUTION: don't use import assert from 'assert'
Just use old style import assert = require('assert')
for assert module.
This is limitation.
Configure
If your tests are not in test
directory
You can set test directory in your package.json
{
"name": "your-module",
"description": "Your module",
"version": "0.0.1",
"directories": {
"test": "spec/"
},
...
}
Then, run mocha with --require espower-typescript/guess
$ ./node_modules/.bin/mocha --require espower-typescript/guess "spec/**/*.ts"
Note: 'espower-typescript/guess'
is inspired by intelli-espower-loader
ts-node and tsconfig.json
espower-typescript uses ts-node internally. It loads your tsconfig.json automatically.
Disable type check (transpile only)
Use TS_NODE_TRANSPILE_ONLY
env of ts-node
$ TS_NODE_TRANSPILE_ONLY=1 ./node_modules/.bin/mocha --require espower-typescript/guess "test/**/*.ts"
JSX/React
.tsx
files are supported.
allowJs
If allowJs: true
in your tsconfig.json
, assertions in test/**/*.(js|jsx)
are empowered.
License
- MIT License: Teppei Sato <teppeis@gmail.com>
- Includes yosuke-furukawa/espower-traceur
- Includes azu/espower-babel