IT

Jest를 사용하여 단일 파일을 어떻게 테스트합니까?

lottoking 2020. 3. 30. 08:55
반응형

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.jsFooZilla.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.jsonjest가 로컬 패키지로 설치된 my의 일부입니다 (관련 부품 제거).

{
...
  "scripts": {
    "test": "jest",
    "testw": "jest --watch",
    "testc": "jest --coverage",
...
  },
  "devDependencies": {
    "jest": "^18.1.0",
    ...
  },

}

당신은 실행하면 npm >= 5.2.0당신은 농담 로컬로 설치 devDependenciesnpm 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

반응형