WebStorm 11をインストールし、新しいプロジェクトを作成しましたが、WebStormはdescribe
メソッドにrequire()
が必要であると言っています。
間違いなくタイプのmochaライブラリを追加しました。スコープはテストディレクトリ(このファイルが含まれています)を対象としています。
編集:コメントに記載されているように、この質問で対処された実際の問題は、実際には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
だけですが、インポートされると@types/mocha
(2019年前半、mocha-DefinitelyTyped
に変換されます)に変換されます。
Mocha-DefinitelyTypedを作成したら、[有効]チェックボックスをオフにします。完全にチェックしたままにすると、テスト以外でもグローバルに有効になり、不正確になります。代わりに、テストディレクトリでのみ有効になるようにスコープを管理します。 [Manage Scopes…
]ボタンをクリックしてテストディレクトリを見つけ、[ライブラリ]列をクリックして、「mocha-DefinitelyTyped」エントリを選択します。下のスクリーンショットをご覧ください。
これは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
現在、Webstorm 2017.3にはバグがあり、「プリファレンス|言語とフレームワーク| JavaScript |図書館|ダウンロードしてインストールする」方法。
ここで追跡されており、最新のEAP(Early Access Preview)(執筆時のWebstorm 2017.3.2)で問題が修正されています。 https://youtrack.jetbrains.com/oauth?state=%2Fissue%2FWEB-29725
私はこれで何時間も頭を壁にぶつけました。これが誰かの助けになることを願っています。