私のtypescript/mocha/gulpプロジェクト用のnyc/istanbulで適切なカバレッジを得るのに苦労しています。私はいくつかの方法を試してきましたが、そのうちのいくつかはソースマップを使用できないように見え、その他はts-node
/tsc
というエラーのために失敗します。私の現在の設定は次のとおりです。nyc/istanbulカバレッジレポートをtypescriptで使用するために
nyc
関連の設定
"scripts": {
"test:coverage": "nyc npm run test:unit",
"test:unit": "gulp mocha"
}
"nyc": {
"check-coverage": true,
"all": true,
"extension": [
".js",
".jsx",
".ts",
".tsx"
],
"include": [
"src/**/!(*.test.*).[tj]s?(x)"
],
"reporter": [
"html",
"lcov",
"text",
"text-summary"
],
"report-dir": "docs/reports/coverage"
}
gulpfile.js
mocha
package.json
に上記の設定カバレッジな生産と関連する部分
const SRC_DIR = path.join(__dirname, 'src');
const SRC_FILES = path.join(SRC_DIR, '**', '*.[jt]s?(x)');
const TEST_FILES = path.join(SRC_DIR, '**', '*.test.[jt]s?(x)');
const MOCHA_CONFIG = {
src: [
TEST_FILES
],
watchSrc: [
SRC_FILES,
TEST_FILES
],
mocha: {
// compilers: [
// 'ts:ts-node/register',
// 'tsx:ts-node/register'
// ],
require: [
'./tests/setup.js',
'ignore-styles',
'source-map-support/register'
]
}
};
gulp.task('mocha', mocha(MOCHA_CONFIG));
tsconfig.json
{
"compilerOptions": {
"baseUrl": "./",
"rootDir": "./src",
"outDir": "./build",
"allowJs": true,
"module": "commonjs",
"target": "es5",
"lib": ["es5", "es6", "dom"],
"sourceMap": true,
"inlineSourceMap": false,
"inlineSources": false,
"experimentalDecorators": true,
"noUnusedParameters": true,
"noUnusedLocals": true,
"jsx": "react",
"moduleResolution": "node"
},
"exclude": [
"docs",
"tests",
"**/*.test.js",
"**/*.test.jsx",
"**/*.test.ts",
"**/*.test.tsx",
"tools",
"gulpfile.js",
"node_modules",
"build",
"typings/main",
"typings/main.d.ts"
],
"awesomeTypescriptLoaderOptions": {
"useCache": true,
"useBabel": true
}
}
すべてのファイルの結果が表示されますが、ソースファイルが使用されていないことが原因です。報告書にはコメントである行は含まれておらず、数字も間違っているようです)。バリアントの数と
は、最も一般的に提案の一つは、まだ、私はすなわちgulpfile.js
、docs/reports/coverage/lcov-report/prettify.js
およびその他のJSファイルの数文句エラーがnot under 'rootDir'
どのように取得していますnyc
構成に"require": ["ts-node/register"]
を追加することですがない成功を収めてみましアプローチそれでも、ts-node
が、tsconfig.json
で除外されていても、src
からすべてのファイルを処理しようとしているのは明らかではありません(構成はまだまだ複雑になります)。
私は、TSファイルの適切なカバレッジレポートを取得するためにどのような方法を使用するかをご理解いただけます。
カバレッジで正しいテストを設定することは時に面倒です。私は、React-TypescriptプロジェクトのためにMocha/Istanbulを使用するのをやめ、イスタンブールが必要とされるJestとts-jest(https://github.com/kulshekhar/ts-jest)に切り替え、Reactテストに必要なものをすべて手に入れました。これは私にとって、異なるバージョン間で安定したスタックです。 –
提案から感謝!実際にこれは私の考慮事項の1つですが、 'jest'が' mocha'と違うので書き直しが必要なのでしょうか? – ciekawy
モカのテストは簡単に冗談に書き換えられます。記述セクションを削除し、それをtest()に変更します。アサーションも異なっています。しかし、前のセクションと後のセクションは同じです。しばらく時間がかかりますが... –