Jest를 사용하여 단일 파일을 어떻게 테스트합니까?
Jest를 사용하여 여러 파일을 테스트 할 수 있지만 단일 파일을 테스트하는 방법을 알 수 없습니다.
나는 가지고있다:
- 운영
npm install jest-cli --save-dev
- 업데이트
package.json
:`{... "scripts": { "test": "jest"} ...} - 여러 테스트를 작성했습니다.
실행 npm test
은 예상대로 작동합니다 (현재 14 개의 테스트를 실행 함).
테스트와 같은 단일 파일을 어떻게 테스트 app/foo/__tests__/bar.spec.js
합니까?
npm test app/foo/__tests__/bar.spec.js
(프로젝트 루트에서) 실행을 시도했지만 다음 오류가 발생합니다.
npm ERR! Error: ENOENT, open '<path to project>/node_modules/app/foo/__tests__/bar.spec.js/package.json'
감사
특정 테스트를 실행하려면 jest
명령 을 사용해야합니다 . npm test
작동하지 않을 것이다. 액세스에 jest
직접 명령 줄을 통해 설치 npm i -g jest-cli
하거나 yarn global add jest-cli
.
그런 다음로 특정 테스트를 실행하십시오 jest bar.spec.js
.
참고 : 테스트 파일의 전체 경로를 입력하지 않아도됩니다. 인수는 정규 표현식으로 해석됩니다. 파일을 고유하게 식별하는 전체 경로의 모든 부분이 충분합니다.
Magick 주문을 외면하기 만하면됩니다.
npm test -- SomeTestFileToRun
독립형 --
은 옵션의 끝을 표시하는 * nix 매직이며,이 경우 이후의 모든 항목이 실행중인 명령에 전달됨을 의미합니다 (NPM의 경우) jest
. 옆으로 말함으로써 농담 사용 노트를 표시 할 수 있습니다
npm test -- --help
어쨌든, 노래
npm test -- Foo
명명 된 파일 ( FooBar.js
) 에서 테스트를 실행합니다 . 그러나 다음 사항에 유의해야합니다.
Jest는 이름을 대소 문자를 구분하므로 대소 문자를 구분하지만 대소 문자를 유지하는 파일 시스템 (예 : Windows NTFS)을 사용하는 경우 이상한 것으로 보이는 문제가 발생할 수 있습니다.
Jest는 사양을 접두사로 취급하는 것으로 보입니다.
위의 주문은
- 실행
FooBar.js
,Foo.js
및FooZilla.js
- 그러나 실행하지 마십시오
foo.js
개별 테스트를 실행하려면
내 모듈 ValidationUtil.spec.js의 ValidationUtil
npm test -t ValidationUtil
테스트 이름을 포함하는 정규식을 넣은 후 -t->
사용 npm test
농담 의미하지 않는다하는 것은 전 세계적으로 설치합니다. "test"가 패키지에서 jest를 사용하여 매핑되었음을 의미합니다.
다음은 프로젝트의 루트 수준에서 나를 위해 일한 것입니다.
node_modules/.bin/jest [args]
args는 실행하려는 테스트 파일이거나 여러 파일을 포함하는 디렉토리 일 수 있습니다.
당신이 사용하는 경우 다음 직후에 또는 파일을 yarn
추가 할 수 있습니다.spec.js
.test.js
yarn test src/lib/myfile.test.js
이것은 package.json
jest가 로컬 패키지로 설치된 my의 일부입니다 (관련 부품 제거).
{
...
"scripts": {
"test": "jest",
"testw": "jest --watch",
"testc": "jest --coverage",
...
},
"devDependencies": {
"jest": "^18.1.0",
...
},
}
당신은 실행하면 npm >= 5.2.0
당신은 농담 로컬로 설치 devDependencies
와 npm i -d jest
당신이 수행하여 특정 파일에 대한 농담을 실행할 수 있습니다npx jest /path/to/your/spec.js
이것은 테스트를 다시 시작하지 않고 특정 파일에서 테스트를 동적으로 실행하는 방법입니다. 내 반응 프로젝트는create-react-app
변경 사항을 테스트하고 변경하면 자동으로 테스트를 실행합니다.
이것이 터미널의 테스트 결과가 끝날 때 나타납니다.
Test Suites: 16 passed, 16 total
Tests: 98 passed, 98 total
Snapshots: 0 total
Time: 5.048s
Ran all test suites.
Watch Usage: Press w to show more.
W를 누르십시오
Watch Usage
› Press f to run only failed tests.
› Press o to only run tests related to changed files.
› Press q to quit watch mode.
› Press p to filter by a filename regex pattern.
› Press t to filter by a test name regex pattern.
› Press Enter to trigger a test run.
그런 다음 P를 누르십시오
Pattern Mode Usage
› Press Esc to exit pattern mode.
› Press Enter to filter by a filenames regex pattern.
pattern ›
Start typing to filter by a filename regex pattern.
이것은 '로그인'폴더에서 'index.es6.js'파일을 실행하고 싶을 때입니다.
Pattern Mode Usage
› Press Esc to exit pattern mode.
› Press Enter to filter by a filenames regex pattern.
pattern › login/index
Pattern matches 1 file
› src/containers/Login/index.es6.test.js
그것이 특정 파일에서 테스트를 실행하는 방법입니다.
방금 전 세계적으로 jest를 설치 한 다음 실행 jest myFileToTest.spec.js
했으며 작동했습니다.
두 가지 옵션이 있습니다.
- 옵션 1 : 명령 행. 다음 명령을 실행할 수 있습니다
node '/Users/complete-path-to-you-project/your-project/node_modules/.bin/jest' '/Users/complete-path-to-you-project/your-project/path-to-your-file-within-the-project/your-file.spec.ts'
이렇게하면 Jest를 전체적으로 설치할 수 없습니다. 프로젝트에서 사용하는 농담을 사용합니다.
- 옵션 2 : VS 코드 를 사용 하는 경우 훌륭한 플러그인이 있습니다. Jest Runner . 파일별로 테스트를 실행할뿐만 아니라 실행하려는 테스트를 마우스 오른쪽 버튼으로 클릭하여 특정 제품군 및 사양까지 실행할 수 있습니다.
Jest 는 전달한 것을 정규식 패턴으로 사용 합니다. 일치합니다.
특정 테스트 파일을 실행하려는 경우 그런 다음 가장 좋은 방법은 전체 경로를 정확하게 작성하는 것입니다. ((src / XFolder / index.spec.ts)와 같은 특정 상대 경로를 너무 정확하게 지정할 수 있습니다).
디렉토리와 리눅스에서 전체 경로를 제공하는 가장 쉬운 방법은 다음과 같습니다.
jest $PWD/index.spec.ts
변수 $ PWD 사용에 유의하십시오 .
창문! (업데이트 할)
참고 URL : https://stackoverflow.com/questions/28725955/how-do-i-test-a-single-file-using-jest
'IT' 카테고리의 다른 글
string.replace에 정규식을 입력하는 방법은 무엇입니까? (0) | 2020.03.30 |
---|---|
VS 코드-디렉토리의 모든 파일에서 텍스트 검색 (0) | 2020.03.30 |
C #의 인라인 함수? (0) | 2020.03.30 |
자식 서브 모듈과 서브 트리의 차이점 (0) | 2020.03.30 |
PHP에서 GET 요청을 보내는 방법은 무엇입니까? (0) | 2020.03.30 |