매우 간단합니다. Jest로 테스트를 하나만 실행하고 싶습니다.
내가 넣어 it.only
또는 describe.only
하지만 여전히 테스트를 훨씬을 실행합니다. 마지막 커밋 이후 모든 테스트를 실행한다고 생각하지만 only
명시 적으로 설정된 플래그로 이러한 동작이 없어야합니다 .
이 동작의 원인은 무엇이며 단일 테스트를 실행하는 방법은 무엇입니까?
답변
Jest는 테스트 실행을 병렬화 하고 실행해야하는 테스트와 실행 하지 않아야하는 테스트를 미리 알지 못합니다. 즉 , “fit”을 사용하면 해당 파일에서 하나의 테스트 만 실행되지만 프로젝트의 다른 모든 테스트 파일은 계속 실행됩니다 .
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
(설명 또는 테스트에서 이름에 대해 일치) 사양 이름과 일치 테스트를 필터링.
출처 : https://facebook.github.io/jest/docs/en/cli.html
예를 들어, 현재 다음과 같이 작성중인 테스트에 집중합니다 (에서 테스트 스크립트 사용 package.json
).
npm test -- -t "test foo"
답변
다음과 같습니다.
jest sometest.test.js -t "some expression to match a describe or a test"
이 이름을 가진 모든 파일을 테스트 할 sometest.test.js
경우에만이 작업을 수행 할 수있는 특정 파일을 테스트하려는 경우, -t 옵션에 따라 매칭을 :
jest src/user/.../sometest.test.js
답변
나를 위해 다음과 같이 2 개의 매개 변수를 사용하면 작동합니다.
yarn test --watch -f "src/...fullpath.../reducer.spec.js" -t "Name of the test"
플래그 :
--watch: is optional
-f: will do filtering of your files, so if you have a lot of tests with the same name, specify the full path to the exact file
-t: works with 'describe' name or 'it' name of your test