web-dev-qa-db-ja.com

jestウォッチからファイルを除外する方法は?

ディスクに何かを書き込む場所をテストするために、jestを使用して少し奇妙なことをしています。ただし、jestでwatchフラグを使用すると、ディスクに何かを書き込むたびにテストが再起動することがわかります(明らかに)。

現在、設定の種類はありません。 documentation を確認しましたが、特定のファイルの監視を抑制するためにどのオプションを使用する必要があるかははっきりしていません。実際のウォッチャーではなく、コードカバレッジ、テスト実行からコードを除外するオプションが表示されると思います。

私の場合、このような設定があり、結果ディレクトリを非表示にしたいだけです。

  • __tests__
    • __snapshots__(jestにより作成)
    • results(私と除外するディレクトリによって作成された)
  • testfile1.js

誰でもこれを行う上で光を当てることができますか?

19
Ian

ドキュメントから、一致する文字列値の配列であるmodulePathIgnorePatternsを追加する必要があります

modulePathIgnorePatterns [array <string>]#

(デフォルト:[])すべてのモジュールパスと一致する正規表現パターン文字列の配列は、それらのパスがモジュールローダーから「見える」と見なされる前に一致します。特定のモジュールのパスがパターンのいずれかに一致する場合、テスト環境ではrequire()-ableになりません。これらのパターン文字列は、フルパスと一致します。 <rootDir>文字列トークンを使用して、プロジェクトのルートディレクトリへのパスを含めて、異なるルートディレクトリを持つ異なる環境にあるすべてのファイルを誤って無視しないようにします。例:['<rootDir>/build /']。

https://facebook.github.io/jest/docs/configuration.html#modulepathignorepatterns-array-string

これを設定に追加...

modulePathIgnorePatterns: ["directoryNameToIgnore"]

または:

modulePathIgnorePatterns: ["<rootDir>/dist/"]
27
Chris Hawkes

jestテストからディレクトリを除外するには、testPathIgnorePatternsを使用します

testPathIgnorePatterns

"testPathIgnorePatterns": ["directory to ignore"]

package.jsonの下で、「src」ディレクトリを無視するように設定しました

{
      "name": "learn-test",
      "jest": {
        "testPathIgnorePatterns": ["src"]
      },
      "version": "0.1.0",
      "private": true,
      "dependencies": {
        "react": "^16.4.1",
        "react-dom": "^16.4.1",
        "react-scripts": "1.1.4"
      },
      "scripts": {
        "start": "react-scripts start",
        "build": "react-scripts build",
        "test": "jest --watch",
        "eject": "react-scripts eject",      

      },

      "devDependencies": {}
    }
6
manas

Jestドキュメントに基づく

watchPathIgnorePatterns

あなたが行きたい方法でなければなりません。 Jest > 23.x.x

watchPathIgnorePatterns

1
Nima Soroush

テストしてはいけないディレクトリがあるときに同じ問題が発生しましたが、__tests__ディレクトリ(例:__mocks__)。

@Chris Hawkesがコメントで指摘したように、そのような場合(スラッシュなし)には相対パスを使用しないでください。だからあなたのpackage.jsonファイルの追加:

jest: {
  "modulePathIgnorePatterns": ["__mocks__"]
}

これで私の問題は解決しました。

1
Islam Murtazaev