UFO ET IT

Jest로 하나의 테스트 만 실행

ufoet 2020. 12. 8. 20:30
반응형

Jest로 하나의 테스트 만 실행


매우 간단합니다. Jest로 테스트를 하나만 실행하고 싶습니다.

내가 넣어 it.only또는 describe.only하지만 여전히 테스트를 훨씬을 실행합니다. 마지막 커밋 이후 모든 테스트를 실행한다고 생각하지만 only명시 적으로 설정된 플래그로 이러한 동작이 없어야합니다 .

이 동작의 원인은 무엇이며 단일 테스트를 실행하는 방법은 무엇입니까?


Jest는 테스트 실행을 병렬화하며 어떤 테스트를 실행해야하고 어떤 테스트를 실행 하지 않아야하는지 미리 알지 못합니다. , "fit"을 사용하면 해당 파일에서 하나의 테스트 만 실행되지만 프로젝트의 다른 모든 테스트 파일은 계속 실행됩니다 .

fit, fdescribeit.only, describe.only같은 목적을 가지고 다른 것들은 건너 뛰고 나만 실행하십시오.

출처 : https://github.com/facebook/jest/issues/698#issuecomment-177673281


다음 jest과 같은 테스트를 실행할 때 필터링 메커니즘을 사용하십시오.

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

testname또는로 테스트를 필터링 할 수 있습니다 filename. 터미널의 지침을 따르기 만하면됩니다.

여기에 이미지 설명 입력

을 누른 p다음 파일 이름 입력

여기에 이미지 설명 입력

그럼 당신은 사용할 수 있습니다 describe.onlyit.only필터링 테스트 파일에서 다른 모든 테스트를하는 건너 뜁니다.


it.onlydescribe.only여러 파일에서 필터 테스트에 문제가있는 경우에만이에있는 모듈에 대한 작업., 당신은 사용할 수 있습니다 jest -t name-of-spec(설명 또는 테스트에서 이름에 대해 일치) 사양 이름과 일치 테스트를 필터링.
출처 : 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 : 테스트의 '설명'이름 또는 '그것'이름과 함께 작동합니다.


다음과 같습니다.

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

sometest.test.js특정 파일 만 테스트하려면 다음을 수행 할 수 있습니다. -t 옵션을 기반으로 이름 과 일치하는 모든 파일 을 테스트합니다.

jest src/user/.../sometest.test.js

참고 URL : https://stackoverflow.com/questions/44446626/run-only-one-test-with-jest

반응형