[angular] 단일 테스트 파일 실행

ng test전체 테스트 스위트 대신 단일 파일 을 실행할 수있는 방법이 있습니까? 이상적으로는 파일을 편집 할 때 가장 빠른 피드백 루프를 원하지만 karma각 저장마다 전체 스위트를 실행 하려고 합니다. 이는 충분히 큰 테스트 스위트를 구축 할 때 약간 느립니다.


이것은 개별 질문 실행에 관한 질문에서 angular-cli하나의 테스트 사양 만 실행하는 방법 과 다릅니다 . 개별 파일을 실행하는 것입니다. 이 솔루션에는 동일한 Jasmine 사양 기능이 포함되지만 질문의 특성은 약간 다릅니다.



답변

Jasmine을 사용하면 접두사 describeit메소드를 f(초점을 위해) 사용할 수 있습니다. 그래서, fdescribe하고 fit. 이 중 하나를 사용하면 카르마는 관련 테스트 만 실행합니다. 따라서 현재 파일의 초점을 맞추기 위해 최상위 레벨 describe을 가져 와서로 변경할 수 fdescribe있습니다. 내 목적으로 작동합니다.


답변

그것은 당신이에 의해 코멘트없이 특정 테스트를 해제 할 수 있음을 언급 할만큼 가치의 xdescribexit

xdescribe('Hello world', () => {
  xit('says hello', () => {
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});

그리고 누군가가 이미 당신은 다음 몇 가지 테스트에 초점을하려는 경우 말했다 fdescribefit

fdescribe('Hello world', () => {
  fit('says hello', () => {
    expect(helloWorld())
        .toEqual('Hello world!');
  });
});


답변

요즘 include옵션을 통해 달성 할 수 있습니다 .
https://angular.io/cli/test#options

예를 들어 glob match입니다.

ng test --include='**/someFolder/*.spec.ts'

8.1.0 릴리스 노트 에서 찾을 수 없지만 @Swoox는 아래에 cli 버전 이후의 기능이라고 언급합니다 8.1.0. 알아 내 주셔서 감사합니다.


답변

단일 파일, 특정 디렉토리 또는 많은 파일에 대해 테스트를 실행하기 위해 사용할 수 ng test있는 추가 옵션이 있음을 발견했습니다 --include.

// one file
npm run test -- --include src/app/components/component/component-name.component.spec.ts

// directory or bunch of files
npm run test -- --include src/app/components

클리닉 문서


답변

src/test.ts다음 줄로 이동하여 변경할 수 있습니다.

const context = require.context('./', true, /\.spec\.ts$/);

const context = require.context('./', true, /**yourcomponent.component**\.spec\.ts$/);

여기에 이미지 설명을 입력하십시오


답변

Visual Studio 코드 확장

가장 쉬운 방법은 vscode-test-explorer 확장을 하위 angular-karma-test-explorerjasmine-test-adapter 와 함께 사용하는 것입니다. 원하는 경우 현재 테스트 목록을 하나씩 실행할 수 있습니다.
여기에 이미지 설명을 입력하십시오

이것은 내가이 질문에 준 것과 같은 대답 입니다. 자세한 내용이 있습니다.


답변

ng test –main file.spec.ts 사용