1. ホーム
  2. reactjs

[解決済み] CRA Jestの非インタラクティブモードでの実行

2022-10-13 09:21:31

質問

更新:私のユースケースは主にCIでテストを実行することですが、デフォルトのCRA Jestパラメータを上書きすることは、一般的に疑問に思っていることです。


を使用してテストを実行しています。 ジェスト に付属している Reactアプリの作成 . 常にインタラクティブモードに起動します。

 › Press a to run all tests.
 › Press o to only run tests related to changed files.
 › Press p to filter by a filename regex pattern.
 › Press q to quit watch mode.
 › Press Enter to trigger a test run.

しかし、私の入力を待つようなことはさせたくありません。一度実行した後に終了させたいのです。そこで --bail または --no-watchman を切り替えても、インタラクティブモードで起動します。

もし私がグローバルに jest をインストールし、プロジェクトのルートで実行すると、一回だけ実行されて終了します (私が望むように)。しかし npm test を実行すると react-scripts test を実行している場合、私がこのコマンドを実行していないときでも、ウォッチモードになります。 --watch .

更新: 私はまた、issue を提出しました。 CRA .

どのように解決するのですか?

あなたは ジェスト --watchAll=false フラグ .

を使う。

npm test -- --watchAll=false

これは react-scripts 3.00

旧バージョンの場合。

  • リアクトスクリプト >= 2.1.4 < 3.00

非Ciの場合、たとえばローカルでテストを実行する場合は --no-watch のフラグを立てます。

npm test --no-watch

  • リアクトスクリプト <= 2.1.3

を探すCRA。 CI 環境変数がある場合、ウォッチモードでは実行されません。

CI=true npm test は、あなたが探しているものを行う必要があります。

をご覧ください。 ユーザーガイド -> テストの実行 -> 自分の環境上で