파일 fix-order-test.js 내에 ‘네스트 된 자식과 함께 작동합니다’테스트가 있습니다.
아래를 실행하면 파일의 모든 테스트가 실행됩니다.
jest fix-order-test
단일 테스트 만 실행하려면 어떻게합니까? 아래는 지정된 정규식 파일을 검색 할 때 작동하지 않습니다.
jest 'works with nested children'
답변
명령 행에서 --testNamePattern
또는 -t
플래그를 사용하십시오.
jest -t 'fix-order-test'
제공 한 테스트 이름 패턴과 일치하는 테스트 만 실행합니다. 그것은에서의 농담 문서 .
다른 방법은 감시 모드에서 테스트를 실행 jest --watch
한 다음을 눌러 p테스트 파일 이름을 입력하여 테스트를 필터링하거나 t단일 테스트 이름을 실행하는 것입니다.
당신은 블록 의 it
내부 가 있다면 describe
, 당신은 실행해야합니다
jest -t '<describeString> <itString>'
답변
Jest 문서 는 다음을 권장합니다.
테스트에 실패한 경우 가장 먼저 확인해야 할 사항 중 하나는 테스트가 유일한 테스트 일 때 테스트에 실패했는지 여부입니다. Jest에서는 테스트를 하나만 실행하는 것이 간단합니다. 일시적으로 해당
test
명령을test.only
test.only('this will be the only test that runs', () => {
expect(true).toBe(false);
});
또는
it.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}
경로로 변수를 대체하고 이유를 알기 때문에 Jvo는 “voila” 가 아닙니다 .Jest는 그러한 경로를 이해하지 못합니다.
비고 :
- 디버거에서 실행하려면
'--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>'
답변
jest
과 같은 스크립트 명령으로 실행 한 경우 npm test
다음 명령을 사용하여 작동시켜야합니다.
npm test -- -t "fix order test"
