web-dev-qa-db-ja.com

Jestで1つのテストのみを実行する

非常に簡単です。Jestで1つのテストを実行したいだけです。

it.onlyまたはdescribe.onlyを配置しましたが、まだ多くのテストを実行しています。最後のコミット以降のすべてのテストを実行すると思いますが、onlyフラグが明示的に設定された状態でこの動作を行うべきではありませんか?

この動作の原因と単一のテストの実行方法は?

56
jpenna

Jestはテストの実行を並列化し、どのテストを実行すべきか、またどのテストを実行すべきでないかを事前に知りません。つまり、「fit」を使用すると、そのファイルで1つのテストのみが実行されますが、プロジェクト内の他のすべてのテストファイルは引き続き実行されます

fitfdescribeおよびit.onlydescribe.onlyは同じ目的で、他のテストをスキップして、自分だけを実行します。

ソース: https://github.com/facebook/jest/issues/698#issuecomment-177673281


次のようなテストを実行する場合は、jestフィルタリングメカニズムを使用します

jest --config=jest.config.json --watch

ターミナルの指示に従うだけで、testnameまたはfilenameでテストをフィルタリングできます。

enter image description here

pを押して、ファイル名を入力します

enter image description here

次に、describe.onlyit.onlyを使用して、フィルター処理され、テストされたファイルから他のすべてのテストをスキップできます。

61
hinok

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"

14
rodgobbi

私にとっては、このような2つのパラメータを使用すると動作します:

yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"

--watch:オプションです

-f:ファイルのフィルタリングを行うため、同じ名前のテストが多数ある場合は、完全なファイルへのフルパスを指定します

-t:テストの 'describe'名または 'it'名で動作します

3
tonco

こんな感じです:

jest sometest.test.js -t "some expression to match a describe or a test"

sometest.test.jsという名前のすべてのファイルをテストし、-tオプションに基づいて一致します。特定のファイルのみをテストする場合は、次の操作を実行できます。

jest src/user/.../sometest.test.js
1
hossein alipour