非常に簡単です。Jestで1つのテストを実行したいだけです。
it.only
またはdescribe.only
を配置しましたが、まだ多くのテストを実行しています。最後のコミット以降のすべてのテストを実行すると思いますが、only
フラグが明示的に設定された状態でこの動作を行うべきではありませんか?
この動作の原因と単一のテストの実行方法は?
Jestはテストの実行を並列化し、どのテストを実行すべきか、またどのテストを実行すべきでないかを事前に知りません。つまり、「fit」を使用すると、そのファイルで1つのテストのみが実行されますが、プロジェクト内の他のすべてのテストファイルは引き続き実行されます。
fit
、fdescribe
およびit.only
、describe.only
は同じ目的で、他のテストをスキップして、自分だけを実行します。
ソース: https://github.com/facebook/jest/issues/698#issuecomment-177673281
次のようなテストを実行する場合は、jest
フィルタリングメカニズムを使用します
jest --config=jest.config.json --watch
ターミナルの指示に従うだけで、testname
またはfilename
でテストをフィルタリングできます。
p
を押して、ファイル名を入力します
次に、describe.only
とit.only
を使用して、フィルター処理され、テストされたファイルから他のすべてのテストをスキップできます。
it.only
およびdescribe.only
は、それらが含まれるモジュールに対してのみ機能します。複数のファイルのテストをフィルター処理するのに問題がある場合は、jest -t name-of-spec
を使用して、仕様名(match describeまたはtestの名前に対して)。
出典: https://facebook.github.io/jest/docs/en/cli.html
たとえば、私は現在package.json
のテストスクリプトを使用して、次のように書いているテストに焦点を当てています。npm test -- -t "test foo"
私にとっては、このような2つのパラメータを使用すると動作します:
yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"
--watch:オプションです
-f:ファイルのフィルタリングを行うため、同じ名前のテストが多数ある場合は、完全なファイルへのフルパスを指定します
-t:テストの 'describe'名または 'it'名で動作します
こんな感じです:
jest sometest.test.js -t "some expression to match a describe or a test"
sometest.test.js
という名前のすべてのファイルをテストし、-tオプションに基づいて一致します。特定のファイルのみをテストする場合は、次の操作を実行できます。
jest src/user/.../sometest.test.js