programing

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

iphone6s 2023. 6. 1. 22:30
반응형

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

Jest를 사용하여 여러 파일을 테스트할 수는 있지만, 단일 파일을 테스트하는 방법을 알 수 없습니다.

소유자:

  • 려달을 합니다.npm install jest-cli --save-dev
  • 업데이트됨package.json: `{ ...{" "test": {"test": "just"}...}
  • 많은 테스트를 작성했습니다.

중입니다.npm test예상대로 작동합니다(현재 14개 테스트 실행).

파일을 단파을예는방법하트)app/foo/__tests__/bar.spec.js?

저는 달리기를 해봤습니다.npm test app/foo/__tests__/bar.spec.js 루트에서 하지만

npm ERR!오류: ENOENT, '/node_modules/app/foo/tests/bar.spec.js/package.json'을 엽니다.

적어도 2019년 이후:

npm test -- bar.spec.js

2015년:

테스트를 해야 합니다.jest지휘권 npm test작동하지 않습니다.jest명줄에설니다를 통해 합니다.npm i -g jest-cli또는yarn global add jest-cli.

다음 그런다특테실행다니합를트스정음▁with로 특정 테스트를 합니다.jest bar.spec.js.

참고: 테스트 파일의 전체 경로를 입력할 필요는 없습니다.인수는 정규식으로 해석됩니다.파일을 고유하게 식별하는 전체 경로의 모든 부분으로 충분합니다.

마법 주문을 외우기만 하면 됩니다.

npm test -- SomeTestFileToRun

실행형 독립--옵션의 * ) 그이 실행 중인 되는 것을 의미합니다. 이 옵션매 *nix 직다즉니입이우경이그, 후의의모것든 (NPM의 경우) 이실행다니중됩달전로명으인령의끝을표위시한하기경우n▁is,▁forn다▁*▁marking니▁in모것됩그달전▁(forpm든의이이후▁meaning▁being이실▁magic즉▁commandn▁the로▁that,행thing중▁n옵션경우▁(▁afterix으jest외에 에 대해서는 " 사용법", "Jest 사용법"이라고 .

npm test -- --help

어쨌든, 구호.

npm test -- Foo

이름이 지정된 파일에서 테스트를 실행합니다(FooBar.js하지만 다음 사항에 유의해야 합니다.

  • Jest는 이름을 대/소문자를 구분하므로 대/소문자를 구분하지 않지만 대/소문자를 구분하는 파일 시스템(예: Windows NTFS)을 사용하는 경우 이상한 현상이 발생할 수 있습니다.

  • Jest는 사양을 접두사로 처리하는 것 같습니다.

그래서 위의 주문은

  • 려달을 합니다.FooBar.js,Foo.js그리고.FooZilla.js
  • 그러나 실행하지 않음foo.js

Visual Studio Code 플러그인 Jest Runner를 설치하면

여기에 이미지 설명 입력

다음 간격 위에 디버그/실행 옵션이 있습니다.describe그리고.it.

여기에 이미지 설명 입력

Visual Studio Code에서 테스트 파일을 열고 이러한 옵션 중 하나를 클릭할 수 있습니다.

개별 테스트 실행 방법

npm test -t ValidationUtil # `ValidationUtil` is my module `ValidationUtil.spec.js`

-t테스트 이름을 포함하는 정규식을 입력합니다.

Yarn을 사용할 경우 다음을 추가할 수 있습니다..spec.js또는.test.js다음 바로 뒤에 파일:

yarn test src/lib/myfile.test.js

은 저의 이은나부다니입에 나오는 입니다.package.jsonJest가 로컬 패키지로 설치된 파일(관련 부품 제거):

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

}

용사를 합니다.npm testJest가 전 세계적으로 설치된다는 의미는 아닙니다.그것은 단지 "테스트"가 당신의 Jest를 사용하는 것에 매핑된다는 것을 의미합니다.package.jsonjava.

다음은 프로젝트의 루트 수준에서 작동합니다.

npx jest [file or directory]

file or directory실행할 테스트 파일이거나 여러 파일이 들어 있는 디렉터리일 수 있습니다.

은 " 이름사수있다습니용할파을일"와 함께 할 수 .npm test --:

npm test -- fileName.jsx 

Angular와 함께 nrwl-nx를 사용하고 있습니다.이 경우 다음 명령을 사용할 수 있습니다.

npm test <ng-project> -- --testFile "file-name-part"

주의:

  • npm test에서는 에서 지테스실행다니에 지정된 테스트 합니다.package.json:"test": "ng test"
  • --다음 매개 변수를 테스트 스크립트에 전달하도록 npm에 지시합니다(사용하지 않는 대신).
  • 따라서 나머지 cmd는 tong 테스트에 합격할 것입니다.
    • <ng-project>는 의프트이다니름에 있는 입니다.angular.json
      • 할 때, " 매변생략면하를수개이,","defaultProject"됨)angular.json가 기본 프로젝트에 때해야 합니다 이 경우에는 해야 합니다.
    • 다음으로 사용되는 빌더를 확인해야 합니다.
      • angular.json로이니다로 합니다."project"-"<ng-project>"-"architect"-"test"
      • 그리고 확인합니다."builder"우리의 경우는 다음과 같습니다."@nrwl/jest:jest"
    • 이제 빌더를 알았으므로 사용 가능한 cmd-line 매개 변수를 찾아야 합니다.
      • 에서 를 합니다.npm test <ng-project> -- --help 가능한 옵션
      • 또는 온라인 설명서를 확인합니다.
    • 옵션 중 하나는 다음과 같습니다.--testFile입니다.

특정 파일에서 특정 테스트를 실행하는 방법

yarn test -f "partial-filename" -t "as split node"

npm test또는jest대체할 수 있습니다.yarn test선호하는 JS 번들러에 따라 달라집니다.

이다 음포는파테찾스습다니가 .some-partial-filename그리고 그 파일들 안에서, 테스트는 필요할 것입니다.describe또는it를 들어 " 노드 "분할 노드", "분할 노드"를

// In cool-partial-filename.js
describe("with a less indented sibling", () => {
  it("should create a new check-list-item with the same indent as split node", () => {
    console.log("This would run with the invocation above");
  })
})

소포와 함께.json 스크립트

와 함께"scripts": { "test": "jest" }파일json:json:

npm test -- foo/__tests__/bar.spec.js

jej-cli 직접 사용

전체적으로 설치됨:

jest foo/__tests__/bar.spec.js

로컬로 설치된 경우:

./node_modules/.bin/jest foo/__tests__/bar.spec.js

용사를 합니다.--testPathPattern

옵션은 jest-cli에 대한 명명되지 않은 위치 인수로 경로를 전달하는 것과 동등한 효과를 가집니다.normalize.ts를 참조하십시오.

./node_modules/.bin/jest --testPathPattern foo/__tests__/bar.spec.js

두 개 이상의 특정 파일 테스트

파일 이름을 쉼표 또는 공백으로 구분:

./node_modules/.bin/jest foo/__tests__/bar.spec.js,foo/__tests__/foo.spec.js
./node_modules/.bin/jest foo/__tests__/bar.spec.js foo/__tests__/foo.spec.js

통과하다--testPathPattern여러 번:

./node_modules/.bin/jest --testPathPattern foo/__tests__/bar.spec.js --testPathPattern foo/__tests__/foo.spec.js

를 실행 중인 npm >= 5.2.0를 로컬로 했습니다.devDependencies와 함께npm i -d jest할 수 있습니다.npx jest /path/to/your/spec.js.

그 당시에는 다음을 사용하여 작업을 수행했습니다.

yarn test TestFileName.spec.js

당신은 완전한 길을 택해서는 안 됩니다.이것은 Windows 10 컴퓨터에서 작동합니다.

또한 다음과 같은 방법으로 달성할 수 있습니다.

jest --findRelatedTests path/to/fileA.js

참조(Just CLI 옵션)

Nx 모노레포에서 어떻게 이를 달성할 수 있습니까?답은 다음과 같습니다(디렉토리에 있음)./path/to/workspace):

npx nx test api --findRelatedTests=apps/api/src/app/mytest.spec.ts

참조 및 추가 정보:Nx #6에서 단일 Jest 테스트 파일을 테스트하는 방법

jej를 글로벌하게 설치하지 않으려면 다음을 사용할 수 있습니다.

npx jest foo.test.js

다음 명령을 사용합니다.

npx jest test --runTestsByPath <path-to-file>

이렇게 하면 테스트를 다시 시작하지 않고 특정 파일에서 테스트를 동적으로 실행할 수 있습니다.

내 리액트 프로젝트는 다음과 같이 생성되었습니다.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.

프레스

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.

그런 다음 을 누릅니다.

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.

다음은 'Login' 폴더에서 '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

이렇게 특정 파일에 대한 테스트를 실행합니다.

간단한 방법은 단일 장치 테스트 파일을 실행하는 것으로, 루트 폴더 안에서 터미널에서 명령을 실행하는 것입니다.

npm test <fileName.test.js>

// For example
npm test utils.test.js

저는 또한 비주얼 스튜디오 코드를 위한 Jest Runner Extensions를 시도해 보았는데, 그것은 아주 잘 작동합니다.

Jest 및 Jest Runner는 농담 작업을 할 때 매우 유용한 VSCode 확장 기능입니다.

재스트 자동 테스트 러너

Jest Runner 테스트 위에 "Run | Debug" 코드 렌즈를 추가하여 단일 테스트를 실행하거나 디버그합니다.

"실행 | 디버그" 코드 렌즈

아래의 명령이 저에게 효과가 있었습니다.
npx jest -i file-name

파일의 전체 경로를 지정할 필요가 없으므로 파일 이름으로 충분합니다.

편집 : 다른 방법을 찾았습니다.
npm run test:functional -i file-name 테스트의
npm run test:integration -i file-name 의 경우

작동하는 간단한 솔루션:

yarn test -g fileName또는

npm test -g fileName

예:

yarn test -g cancelTransaction또는

npm test -g cancelTransaction

테스트 필터에 대한 자세한 정보:

Test Filters
--fgrep, -f Only run tests containing this string [string]
--grep, -g Only run tests matching this string or regexp [string]
--invert, -i Inverts --grep and --fgrep matches [boolean]

실을 사용하는 경우 이 작업을 수행합니다.

yarn test nameofthefile

예:

yarn test file.test.js

전체 경로를 통과할 필요가 없습니다.그냥 정규 표현 패턴을 사용하세요.

--testLocation 참조결과에.

yarn jest --testNamePattern my_test_name
yarn jest -t=auth
yarn jest -t component # This will test all whose test name contains `component`

yarn jest --testPathPattern filename # This will match the file path
yarn jest filename # This will match the file path, the same with above

로 설치하고, 실행했습니다.Jest를글설로실행고니습다했치금방하로벌▁j▁ran▁i,▁just를 실행했습니다.jest myFileToTest.spec.js그리고 그것은 성공하였다.

이 명령을 사용하여 특정 파일의 적용 범위를 실행하고 확인합니다.

yarn run test Index.js -u --coverage --watchAll=false

두 가지 옵션이 있습니다.

  • 옵션 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: Visual Studio Code를 사용하는 경우 이를 위한 훌륭한 플러그인인 Jest Runner가 있습니다.테스트를 파일별로 실행할 뿐만 아니라 실행할 테스트를 마우스 오른쪽 버튼으로 클릭하는 것만으로 특정 제품군 및 사양도 실행할 수 있습니다.

Angular 및 Jest를 사용하여 파일 패키지에 추가할 수 있습니다."json" 아래에 있는 json:

"test:debug": "node --inspect-brk ./node_modules/jest/bin/jest.js --runInBand"

그런 다음 특정 파일에 대한 단위 테스트를 실행하려면 터미널에 이 명령을 입력합니다.

npm run test:debug modules/myModule/someTest.spec.ts

Just 문서에서:

  "scripts": {
    "test": "jest path/to/my-test.js"
  }

실행 대상

 npm run test

소포와 함께.json:

  "scripts": {
    "test": "jest --coverage",
    "start": "node index.js"
  }

다음은 저에게 효과가 있었습니다.

npm test -f comm -- -t=first

파일 이름에 'comm'이 포함된 모든 파일을 찾고 찾은 파일에서 'first'가 포함된 테스트만 실행합니다.

Jest는 당신이 전달한 것을 정규 표현 패턴으로 사용할 것입니다.그것과 일치할 것입니다.

특정 테스트 파일을 실행하려면 파일에 대한 정확한 전체 경로를 사용하는 것이 가장 좋습니다. ((src/Xfolder/index.spec.ts)와 같은 특정 상대 경로도 지정할 수 있습니다.)

디렉터리와 리눅스에서 전체 경로를 제공하는 가장 쉬운 방법은 다음과 같습니다.

jest $PWD/index.spec.ts

$PWD 변수를 사용합니다.

여기에 이미지 설명 입력

Windows용!(업데이트 예정)

import LoggerService from '../LoggerService ';

describe('Method called****', () => {
  it('00000000', () => {
    const logEvent = jest.spyOn(LoggerService, 'logEvent');
    expect(logEvent).toBeDefined();
  });
});

용도:

npm test -- __tests__/LoggerService.test.ts -t '00000000'

언급URL : https://stackoverflow.com/questions/28725955/how-do-i-test-a-single-file-using-jest

반응형