備忘録。Typescript + Jest + eslintなプロジェクトでjestとeslintが喧嘩していたのでなるべく労力を使わずに和解させた。もっといい方法があればTwitterで教えて下さい。
issue
以下のようなディレクトリ構成で、
tests/V2Fetcher.test.tsにて以下のように怒られた。
Parsing error: "parserOptions.project" has been set for @typescript-eslint/parser. The file does not match your project config: tests/V2Fetcher.test.ts. The file must be included in at least one of the projects provided.eslint
これは
tsconfig.json で tests ディレクトリをallowlistに入れていない為に起きる現象だが、 tests をここに入れてしまうとbuildファイルに含まれてしまうのでいろいろと困る。(tsc){ "include": ["src/**/*"] }
unit testファイルをlint対象にするが、最終的なbuildファイルには含めない状態を作りたい。
やったこと
testを
src 配下に置き、build後にtestファイルを削除するようにした。参考元
適用例
(記事に関係ない変更も含まれてるけど気にしない。)
- testファイルを移動
- jestのtestMatchを変更
buildscriptでtsc後にtestファイルを削除するように変更
おわり。

![[Typescript]testファイルをどこに置くべきか](https://www.notion.so/image/https%3A%2F%2Fwww.notion.so%2Fimages%2Fpage-cover%2Fwoodcuts_16.jpg?table=block&id=31131150-b7f2-4456-a786-5d7ccd955c1c&cache=v2)