[angular] 단일 테스트 파일 실행
ng test
전체 테스트 스위트 대신 단일 파일 을 실행할 수있는 방법이 있습니까? 이상적으로는 파일을 편집 할 때 가장 빠른 피드백 루프를 원하지만 karma
각 저장마다 전체 스위트를 실행 하려고 합니다. 이는 충분히 큰 테스트 스위트를 구축 할 때 약간 느립니다.
이것은 개별 질문 실행에 관한 질문에서 angular-cli 로 하나의 테스트 사양 만 실행하는 방법 과 다릅니다 . 개별 파일을 실행하는 것입니다. 이 솔루션에는 동일한 Jasmine 사양 기능이 포함되지만 질문의 특성은 약간 다릅니다.
답변
Jasmine을 사용하면 접두사 describe
와 it
메소드를 f
(초점을 위해) 사용할 수 있습니다. 그래서, fdescribe
하고 fit
. 이 중 하나를 사용하면 카르마는 관련 테스트 만 실행합니다. 따라서 현재 파일의 초점을 맞추기 위해 최상위 레벨 describe
을 가져 와서로 변경할 수 fdescribe
있습니다. 내 목적으로 작동합니다.
답변
그것은 당신이에 의해 코멘트없이 특정 테스트를 해제 할 수 있음을 언급 할만큼 가치의 xdescribe
과xit
xdescribe('Hello world', () => {
xit('says hello', () => {
expect(helloWorld())
.toEqual('Hello world!');
});
});
그리고 누군가가 이미 당신은 다음 몇 가지 테스트에 초점을하려는 경우 말했다 fdescribe
과fit
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-explorer 및 jasmine-test-adapter 와 함께 사용하는 것입니다. 원하는 경우 현재 테스트 목록을 하나씩 실행할 수 있습니다.
이것은 내가이 질문에 준 것과 같은 대답 입니다. 자세한 내용이 있습니다.
답변
ng test –main file.spec.ts 사용