FacebookのJestテストフレームワークは簡単です はじめに、しかしドキュメント 見落とす 迷惑な側面 :テストステートメントは、未定義のシンボルを警告しようとするエディターによってエラーとして強調表示されますtest
、expect
、およびすべてのマッチャーメソッドが定義されていないため。
同様に、node
を使用してテストファイルを直接実行しようとすると、ReferenceError: test is not defined
で失敗します。
これらのエラーを解消するには、どのrequire
/import
ステートメントを追加する必要がありますか?
それらをノードから直接実行したい場合は、-require jest
やjest-runtime
を試してください。@types/jest
も試してみてください。
これに関する新しい情報については編集2を確認してください
編集
@types/jest
(jest-DefinitelyTyped
)は絶対に必要(または1つのソリューション)です。 インストールする(例:dev依存関係)の場合、IDEエラーはなくなるはずです。Webstormで試したところ、うまくいきました。
編集2
新しいJest @ 20 Matchers(たとえば、.resolves
および.rejects
)は、@types/jest
ではまだ定義されていません。以下のリンクでそのステータスを追跡できます: https://github.com/DefinitelyTyped/DefinitelyTyped/pull/16645https://github.com/DefinitelyTyped/DefinitelyTyped/ issues/168
しかし、すぐに利用可能になるはずです!
また、ノードから直接実行することはできないようです。昨夜私はたくさんのことを試しましたが、jestを使用するのが一番です-これは実際にはノードを内部で使用していますなので、それも可能だと思いました。 @ thymikee GitHubで未解決の問題について、それがそうではないことを明らかにしました。
編集
新しいリリース(20.0.1)には、最新のJest定義が含まれています。
これはこの特定の問題の範囲外ですが、それも役立ちます
ESLintのようなものを使用していますか?その場合、eslint-plugin-jest
が必要になります
このページで説明されている手順に従ってください: https://www.npmjs.com/package/eslint-plugin-jest 、基本的にそれをESLintプラグインとして追加し、jestグローバルをESLint構成:
{
"env": {
"jest/globals": true
}
}
ES6テストのサポートを計画している場合は、Babel
およびbabel-jest
プラグインと次のjest設定も必要です。
"transform": {
"^.+\\.js$": "babel-jest"
}
最後に、TypeScriptテストの場合、@types/jest
およびts-jest
パッケージも必要になります。
私はVSCodeとESLintを使用しています。インストールする必要があります eslint-plugin-jest
.eslintrc.js
にjest情報を追加します
{
"plugins": ["jest"]
},
"env": {
"jest/globals": true
}
以下の.eslintrc構成を追加するだけで十分です
{"env":
{
"jest": true
}
}