Jest를 사용하여 단일 테스트를 어떻게 실행합니까?
파일 fix-order-test.js 내에 '네스트 된 자식과 함께 작동합니다'테스트가 있습니다.
아래를 실행하면 파일의 모든 테스트가 실행됩니다.
jest fix-order-test
단일 테스트 만 실행하려면 어떻게합니까? 아래는 지정된 정규식 파일을 검색 할 때 작동하지 않습니다.
jest 'works with nested children'
명령 행에서 --testNamePattern
또는 -t
플래그를 사용하십시오.
jest -t 'fix-order-test'
제공 한 테스트 이름 패턴과 일치하는 테스트 만 실행합니다. 그것은에서의 농담 문서 .
다른 방법은 감시 모드에서 테스트를 실행 jest --watch
한 다음을 눌러 p테스트 파일 이름을 입력하여 테스트를 필터링하거나 t단일 테스트 이름을 실행하는 것입니다.
Jest 문서 는 다음을 권장합니다.
테스트에 실패한 경우 가장 먼저 확인해야 할 사항 중 하나는 테스트가 유일한 테스트 일 때 테스트에 실패했는지 여부입니다. Jest에서는 테스트를 하나만 실행하는 것이 간단합니다. 일시적으로 해당
test
명령을test.only
test.only('this will be the only test that runs', () => {
expect(true).toBe(false);
});
다른 답변에서 언급했듯이 test.only
동일한 파일에서 다른 테스트를 필터링하면됩니다 . 따라서 다른 파일의 테스트는 계속 실행됩니다.
따라서 단일 테스트를 실행하려면 두 가지 접근 방식이 있습니다.
옵션 1 : 테스트 이름이 고유 한 경우
t
시계 모드에서 입력하고 실행할 테스트 이름을 입력 할 수 있습니다.옵션 2 :
- 히트
p
시계 모드에서 사용자가 실행하고자하는 파일 이름에 대한 정규식을 입력 할 수있다. (시계 모드에서 Jest를 실행하면 이와 같은 관련 명령이 표시됩니다). - 변경
it
에it.only
당신이 실행하고자하는 테스트합니다.
- 히트
위의 방법 중 하나를 사용하면 Jest는 지정한 파일에서만 단일 테스트를 실행합니다.
단일 Jest 테스트를 실행하기위한 전체 명령
명령:
node <path-to-jest> -i <you-test-file> -c <jest-config> -t "<test-block-name>"
<path-to-jest>
:- 윈도우 :
node_modules\jest\bin\jest.js
- 기타 :
node_modules/.bin/jest
- 윈도우 :
-i <you-test-file>
: 테스트가있는 파일의 경로 (js
또는ts
)-c <jest-config>
: 별도의 Jest 구성 파일 (JSON) 경로, Jest 구성을 유지package.json
하는 경우이 매개 변수를 지정할 필요가 없습니다 (Jest는 사용자의 도움없이 찾을 수 있음)-t <the-name-of-test-block>
: 실제로는의 이름 (제 파라미터)이다describe(...)
,it(...)
또는test(...)
블록.
예:
describe("math tests", () => {
it("1 + 1 = 2", () => {
expect(1 + 1).toBe(2);
});
it("-1 * -1 !== -1", () => {
expect(-1 * -1).not.toBe(-1);
});
});
따라서 명령
node node_modules/jest/bin/jest.js -i test/math-tests.js -c test/tests-config.json -t "1 + 1 = 2"
테스트 it("1 + 1 = 2", ...)
하지만 -t
매개 변수를 "math tests"
로 변경 하면 describe("math tests",...)
블록 에서 두 테스트를 모두 실행합니다 .
비고 :
- Windows의 교체
node_modules/.bin/jest
와 함께node_modules\jest\bin\jest.js
. - 이 방법을 사용하면 실행중인 스크립트를 디버깅 할 수 있습니다. 디버깅 을 활성화하려면
'--inspect-brk'
명령 에 매개 변수를 추가하십시오 .
'package.json'에서 NPM 스크립트를 통해 단일 Jest 테스트 실행
Jest를 설치하면 NPM 스크립트 를 사용하여 위 명령의 구문을 단순화 할 수 있습니다 . 에서 것은 "package.json"
받는 새로운 스크립트를 추가 "scripts"
섹션 :
"scripts": {
"test:math": "jest -i test/my-tests.js -t \"math tests\"",
}
이 경우 'jest'
전체 경로를 작성하는 대신 별칭을 사용합니다. 또한 구성 파일 경로도 지정할 수 없으므로 "package.json"
Jest는 기본적으로 경로를 확인합니다. 이제 다음 명령을 실행할 수 있습니다.
npm run test:math
상기 "math tests"
두 실험과 블록이 실행된다. 또는 하나의 특정 테스트를 이름으로 지정할 수도 있습니다.
또 다른 옵션은 스크립트 <the-name-of-test-block>
외부에서 매개 변수 를 가져 "test:math"
와서 NPM 명령에서 전달하는 것입니다.
package.json :
"scripts": {
"test:math": "jest -i test/my-tests.js -t",
}
명령:
npm run test:math "math tests"
이제 훨씬 짧은 명령으로 테스트 실행 이름을 관리 할 수 있습니다.
비고 :
- 이
'jest'
명령은 NPM 스크립트와 함께 작동하므로npm 은 라이프 사이클 스크립트를 실행할 때 환경 변수
"./node_modules/.bin"
의 첫 번째 항목을PATH
작성하므로 프로그램이 전체적으로 설치되지 않은 경우에도 정상적으로 작동합니다 ( NPM 블로그 ) - 이 방법은 농담이를 통해 실행되기 때문에 디버깅을 허용하지 않는 것 진 / CLI 하지 통해
node
.
Visual Studio Code에서 선택된 Jest 테스트 실행
Visual Studio Code를 사용하는 경우이를 사용하여 F5
버튼 을 눌러 현재 선택된 테스트 (코드 편집기에서)를 실행할 수 있습니다 . 이를 위해 파일 에 새로운 시작 구성 블록 을 만들어야 ".vscode/launch.json"
합니다. 이 구성에서는 실행시 적절한 (불행히도 항상 그런 것은 아님 ) 값 으로 대체되는 사전 정의 된 변수 를 사용 합니다. 사용 가능한 모든 것 중에서 우리는 다음에 만 관심이 있습니다.
${relativeFile}
-현재 열린 파일${workspaceFolder}
${selectedText}
-활성 파일에서 현재 선택된 텍스트
그러나 launch config를 작성하기 전에 'test'
스크립트를 추가해야합니다 'package.json'
(아직없는 경우).
package.json :
"scripts": {
"test": "jest"
}
시작 설정에서 사용할 수 있습니다.
구성 시작 :
{
"type": "node",
"request": "launch",
"name": "Run selected Jest test",
"runtimeExecutable": "npm",
"runtimeArgs": [
"run-script",
"test"
],
"args": [
"--",
"-i",
"${relativeFile}",
"-t",
"${selectedText}"
],
"console": "integratedTerminal",
}
실제로이 답변의 앞에서 설명한 명령과 동일합니다. 모든 것이 준비되었으므로 명령 매개 변수를 수동으로 다시 작성하지 않고도 원하는 테스트를 실행할 수 있습니다.
여기 당신이해야 할 모든 것이 있습니다 :
- 디버그 패널에서 현재 작성된 실행 구성을 선택하십시오.
- 코드 편집기에서 테스트와 함께 파일을 열고 테스트하려는 테스트 이름을 따옴표없이 선택하십시오.
- 보도
'F5'
버튼을 누릅니다.
그리고 짜잔!
이제 편집기에서 테스트를 열려면 이름을 선택하고 F5를 누르십시오.
불행히도 Windows 시스템에서는 슬래시가 반전 된${relativeFile}
경로로 변수를 대체하고 (왜 그런지 아는가) Jest는 그러한 경로를 이해하지 못하기 때문에 Windows 시스템에서는 "voila" 가 아닙니다.
비고 :
- 디버거에서 실행하려면
'--inspect-brk'
매개 변수 를 추가하는 것을 잊지 마십시오 . - 이 구성 예에서는에 포함되어 있다고 가정하는 Jest 구성 매개 변수가 없습니다
'package.json'
.
당신은 또한 사용할 수 있습니다 f
또는 x
초점 또는 시험을 제외 할 수 있습니다. 예를 들어
fit('only this test will run', () => {
expect(true).toBe(false);
});
it('this test will not run', () => {
expect(true).toBe(false);
});
xit('this test will be ignored', () => {
expect(true).toBe(false);
});
위에서 말했듯이 명령을 실행할 수 있습니다
jest -t 'fix-order-test'
당신은 블록 의 it
내부 가 있다면 describe
, 당신은 실행해야합니다
jest -t '<describeString> <itString>'
와 최신 농담 버전 , 당신은 테스트 스위트에 대한 동일한에서만 실행 한 테스트로 다음 중 하나를 사용할 수 있습니다.
it.only('test 1', () => {})
test.only('test 1', () => {})
fit('test 1', () => {})
jest 'test 1'
테스트 이름이 고유 한 경우에도 작동 할 수 있습니다.
jest
과 같은 스크립트 명령으로 실행 한 경우 npm test
다음 명령을 사용하여 작동시켜야합니다.
npm test -- -t "fix order test"
VS 코드에서는 중단 점을 사용하여 1 개의 Jest 테스트 만 실행 / 디버그 할 수 있습니다. https://github.com/Microsoft/vscode-recipes/tree/master/debugging-jest-tests
내 launch.json
안에 이것을 가지고 있습니다 :
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest All",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": ["--runInBand"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
},
{
"type": "node",
"request": "launch",
"name": "Jest Current File",
"program": "${workspaceFolder}/node_modules/.bin/jest",
"args": ["${relativeFile}"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"windows": {
"program": "${workspaceFolder}/node_modules/jest/bin/jest",
}
}
]
}
그리고 이것은 package.json
:
"scripts": {
"test": "jest"
}
- 1 개의 테스트를 실행하려면 해당 테스트에서
test
(또는it
)를test.only
(또는it.only
)로 변경하십시오. 1 개의 테스트 스위트 (여러 테스트)를 실행하려면로 변경describe
하십시오describe.only
. - 원하는 경우 중단 점을 설정하십시오.
- VS Code에서 디버그보기 (Shift + Cmd + D)로 이동하십시오.
- 상단의 드롭 다운 메뉴에서을 선택하십시오
Jest Current File
. - 테스트를 실행하려면 녹색 화살표를 클릭하십시오.
여기 내 테이크가 있습니다 :
./node_modules/.bin/jest --config test/jest-unit-config.json --runInBand src/components/OpenForm/OpenForm.spec.js -t 'show expanded'
노트:
./node_modules/.bin/...
로컬로 설치된 패키지와 함께 제공된 로컬로 설치된 jest (또는 mocha 또는 ...) 바이너리에 액세스하는 훌륭한 방법입니다. (예, npm 스크립트jest
에서는 이전에 아무것도 할 수 없지만 이것은 명령 줄에서 편리합니다 ... (또한 디버깅 구성, 어느 IDE를 사용하든 좋은 시작입니다 ...)- 프로젝트에 구성 옵션 세트가 없을 수 있습니다. 그러나 (에서 스크립트를 들여다 본다면
package.json
) 이것이 필요한 것입니다. --runInBand
말했듯이 구성에 대해서는 알지 못하지만 단일 테스트 개발 / 수정에 집중하면 웹 작업자를 다루고 싶지 않습니다 ...- 예, 파일에 대한 전체적이고 명확한 경로를 제공 할 수 있습니다
- 선택적
-t
으로 해당 파일의 모든 테스트를 실행하지 않고 단일 테스트 (여기서는show expanded
이름에 ' ' 가있는 테스트) 만 실행할 수 있습니다 ..only()
해당 파일 을 붙이면 동일한 효과를 얻을 수 있습니다 .
단지 약간의 추가 기능입니다. 사용하기 위해 싸우 ./node_modules/.bin/jest -i ...
거나 일종 jest -i ...
또는npm test -- -i ...
jest
npm install -g jest와 같이 전 세계에 설치되어 있으면 종속성을 처리하는 깔끔하지 않은 방법으로 호출 하면됩니다.npx jest -i ...
jest가 패키지에 로컬로만 설치되어 있고 npm 스크립트 우회없이 jest 스크립트를 호출하려는 경우 =>를 사용할 수 있습니다. 이것은 정확히 npx의 용도입니다. 글쓰기에서 당신을 저장./node_modules/.bin/...
이제 이것을위한 멋진 jest 플러그인 이 있는데이jest-watch-typeahead
프로세스를 훨씬 간단하게 만듭니다.
참고 URL : https://stackoverflow.com/questions/42827054/how-do-i-run-a-single-test-using-jest
'IT' 카테고리의 다른 글
PyPy — CPython을 어떻게 이길 수 있습니까? (0) | 2020.04.01 |
---|---|
Java-현재 클래스 이름을 얻습니까? (0) | 2020.04.01 |
파이썬에서 큰 파일을 읽는 게으른 방법? (0) | 2020.04.01 |
프로그램이 실행되는 디렉토리는 어떻게 얻습니까? (0) | 2020.04.01 |
CSS3 애니메이션 종료시 최종 상태 유지 (0) | 2020.04.01 |