はじめに
restify + TypeScript + Jestの開発環境をセットアップしてみる な感じでTypeScript + (TS)Jestで開発しているときに "collectCoverage": true
としてカバレッジレポートを出そうとして以下のようなエラーが出た
Running coverage on untested files...Failed to collect coverage from /Users/user/src/project/types/example.d.ts
ERROR: Debug Failure. Output generation failed
STACK: Error: Debug Failure. Output generation failed
at Object.transpileModule (/Users/user/src/project/node_modules/typescript/lib/typescript.js:100526:29)
どうも *.d.ts
がカバレッジ計測に含まれてしまってエラーになっているようだ。*.d.ts
が入っているtypes
フォルダをカバレッジ対象から除外しないといけない。
対策
Code Coverage: Uncovered lines/statements in file that only defines interfaces.
package.json
"collectCoverageFrom": [
"src/**/*.ts",
"!src/**/*.d.ts"
]
"!src/**/*.d.ts"
がミソ。!
を先頭につけたパスはカバレッジから外れるみたい。
これで通った。