web-dev-qa-db-ja.com

WebStorm 11のMochaの「require()is missing」についての説明

WebStorm 11をインストールし、新しいプロジェクトを作成しましたが、WebStormはdescribeメソッドにrequire()が必要であると言っています。

require() call is missing

間違いなくタイプのmochaライブラリを追加しました。スコープはテストディレクトリ(このファイルが含まれています)を対象としています。

29
BanksySan

編集:コメントに記載されているように、この質問で対処された実際の問題は、実際にはIntelliJ 15/WebStorm 11のバグです( https://youtrack.jetbrains.com/issue/WEB-18768 を参照) 。提供されているソリューションを検索するときに多くの人々がここに来るので、私は以下の答えを残しています。

受け入れられた答えは、問題を解決するための大まかなアプローチです。より良い解決策は、テストディレクトリに対してmocha-DefinitelyTypedライブラリを有効にすることです。これにより、誤った検査が削除されるだけでなく、構文の強調表示が改善されます。

検査の説明から:

表示されるJavaScriptコードの外で独自のグローバルシンボルを定義するライブラリを使用する場合(たとえば、Mochaのdescribe())、[設定]の[対応するTypeScriptタイプ定義ファイルをJavaScriptライブラリとして追加することをお勧めします|言語とフレームワーク| JavaScript |ライブラリ。

上記で参照した設定セクション「設定|言語とフレームワーク| JavaScript |ライブラリ」を選択し、mocha-DefinitelyTypedライブラリがリストにあるかどうかを確認します。

@types/mocha(以前はmocha-DefinitelyTypedという名前でした)がリストにない場合は、Download…ボタンをクリックし、[TypeScriptコミュニティスタブ]セクションで[mocha]を見つけて選択し、クリックしますダウンロードとインストール:

‘mocha’ library to import, shown in the Download Library window

ライブラリの名前はリストでmochaだけですが、インポートされると@types/mocha(2019年前半、mocha-DefinitelyTypedに変換されます)に変換されます。

Mocha-DefinitelyTypedを作成したら、[有効]チェックボックスをオフにします。完全にチェックしたままにすると、テスト以外でもグローバルに有効になり、不正確になります。代わりに、テストディレクトリでのみ有効になるようにスコープを管理します。 [Manage Scopes…]ボタンをクリックしてテストディレクトリを見つけ、[ライブラリ]列をクリックして、「mocha-DefinitelyTyped」エントリを選択します。下のスクリーンショットをご覧ください。

screenshot of the JavaScript Libraries Usage Scopes preferences window

98
BamaPookie

これはv。11で導入された新しい検査です。コードで使用されるモジュールがrequire()ステートメントを介して参照されているかどうかをチェックします。実際、この検査はモカテストでは冗長です(「説明」などは、モカによってグローバルスコープに追加されるため、明示的に要求される必要はありません)。この検査を無効にするか、「describe」、「it」などで抑制することができます( https://www.jetbrains.com/webstorm/help/suppressing-inspections.html を参照)。別のオプション:スペックファイルを除外したカスタムスコープを作成し(Settings/Appearance&Behavior/Scopes)、「Missing require()statement」インスペクション(Settings/Editor/Inspections/Javascript/Node.js)にこのスコープを選択します。

関連チケット: WEB-18768

10
lena

現在、Webstorm 2017.3にはバグがあり、「プリファレンス|言語とフレームワーク| JavaScript |図書館|ダウンロードしてインストールする」方法。

ここで追跡されており、最新のEAP(Early Access Preview)(執筆時のWebstorm 2017.3.2)で問題が修正されています。 https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FWEB-29725

私はこれで何時間も頭を壁にぶつけました。これが誰かの助けになることを願っています。

1

すでにmochaをグローバルにインストールしていて、まだ動作しない場合は、すべての実行/デバッグ構成を削除してみてください。

Npmランナーが更新され、問題が解決することを願っています。

enter image description here

0
Oleg