programing

단일 테스트 파일을 실행합니다.

jooyons 2023. 4. 25. 22:17
반응형

단일 테스트 파일을 실행합니다.

도망갈 방법이 있나요?ng test전체 테스트 스위트가 아닌 단일 파일에 사용할 수 있습니까?파일을 편집할 때 가능한 한 빠른 피드백 루프를 얻는 것이 이상적입니다.karma에서는 각 저장마다 전체 제품군을 실행하므로, 충분히 큰 테스트 제품군을 구축하면 속도가 다소 느려집니다.


는 angular-cli를 사용하여 하나의 테스트 규격만 실행하는 방법과 다릅니다.이것은 개별 파일을 실행하는 것에 대한 것입니다.솔루션은 동일한 Jasmine 스펙 기능을 포함하지만 질문의 성격이 약간 다릅니다.

Jasmine이 접두사를 붙일 수 있다는 것을 발견했습니다.describe그리고.it메서드를 사용합니다.f(포커스를 위해): fdescribe그리고.fit둘 중 하나를 사용할 경우 Karma는 관련 테스트만 실행합니다.현재 파일에 초점을 맞추려면 최상위 수준을 선택하면 됩니다.describe으로 변경합니다.fdescribe버전 2.1 이전 Jasmine을 사용하는 경우 포커싱 키워드는 다음과 같습니다.iit그리고.ddescribe.

다음 예제 코드는 첫 번째 테스트만 실행합니다.

// Jasmine versions >/=2.1 use 'fdescribe'; versions <2.1 use 'ddescribe'
fdescribe('MySpec1', function () {
    it('should do something', function () {
        // ...
    });
});

describe('MyOtherSpec', function () {
    it('should do something else', function () {
        // ...
    });
});

여기 Focusing Speces에 대한 Jasmine 문서와 추가적인 사려 깊은 해결책을 제공하는 관련 SO 기사가 있습니다.

이는 오늘날 다음을 통해 달성할 수 있습니다.include선택.https://angular.io/cli/test#options

지구촌 경기에요, 예를 들면요:

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

8.1.0 릴리스 정보에서는 찾을 수 없지만 아래에 @Swoox에서 CLI 버전 이후의 기능입니다.8.1.0알아줘서 고마워요

다음 항목에 대한 설명 없이 특정 테스트를 비활성화할 수 있습니다.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!');
  });
});

그거 찾았어요.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

ng CLI 문서입니다.

다음 주소로 가시면 됩니다.src/test.ts다음 행을 변경할 수 있습니다.

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

로.

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

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

Visual Studio 코드 확장자입니다.

가장 쉬운 방법은 vscode-test-explor 확장 기능을 하위 Angular-karma-test-explor 및 jasmine-test-adapter와 함께 사용하는 것입니다. 현재 테스트를 하나씩 실행할 수 있는 목록이 제공됩니다.

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

이 질문에 대한 답변과 동일합니다. 자세한 내용은 여기에 있습니다.


업데이트 DEC/2021: Angular Karma Test Explorer가 더 이상 사용되지 않습니다. 대신 Karma Test Explorer 사용을 고려하십시오.

Angular 9에서 저는 다음과 같은 행운을 얻었습니다.

특정 파일을 테스트하려면 다음과 같이 하십시오.

ng test --test-file=path/to/your/file.component.spec.ts

Angular 프로젝트에 여러 프로젝트가 있거나 NX를 사용하는 경우 테스트할 Angular 프로젝트를 지정할 수 있습니다.

ng test project-name


사용할 수도 있습니다.

ng test --testNamePattern componentname

뭐 그런 걸로요path/to/your/component/componentname.spec.ts. 이렇게 하면 모든 프로젝트의 모든 파일이 검색되며 속도가 느려집니다 이렇게 하면 모든 프로젝트의 모든 파일이 검색되고 속도가 느려집니다.


마지막 커밋 이후 변경된 내용만 테스트하려면(git 또는 다른 버전 제어 사용)

ng test --only-changed

바닐라 앵글에서는 일하지 않아요

사용.

ng test --main file.spec.ts

테스트 파일의 상대 경로를 가져와 다음과 같이 제공합니다.

ng test --include=src\app\app.component.spec.ts

효과가 있어요!!

꼭 가셔야 합니다.src/test.ts그리고 18번 줄 코드를 바꿀 수 있습니다.

//Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);

로.

//Then we find all the tests.
const context = require.context('./', true, /testing.component\.spec\.ts$/);

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

답을 찾고 있었어요당신의 질문이 저에게 많은 도움이 되었어요.그런데 어떤 점이 애매했어요.특히 아래 CLI 명령을 실행하는 경우입니다.

npm run test -- --include src/app/component/your.component.spec.ts

단일 테스트 파일이 실행되지만 테스트 실행 후 테스트 브라우저가 즉시 닫히므로 워치 플래그가 누락되어 테스트 파일을 볼 수 없습니다.따라서 Watch 플래그를 True 값으로 제공해야 합니다.아래 CLI 명령어는 watch flag로 정상적으로 동작하는 것을 확인하였습니다.

ng test --watch=true "--include" "src/app/components/your.component.spec.ts"

IntelliJ IDE를 사용하는 경우 사양 테스트 옆에 있는 'run' 아이콘을 클릭하여 'Karma' 플러그인을 설치하고 개별적으로 사양을 실행할 수 있습니다.

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

왜 그렇게 힘들게 해요?

  • 을 실행합니다.ng test

  • 콘솔에 표시된 링크를 엽니다.

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

  • 오른쪽 위에 있는 을 클릭합니다.Debug다음을 참조하십시오

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

  • 단독 실행하려는 테스트를 클릭합니다.

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

  • 테스트를 다시 실행하려면 브라우저 창(예: )을 새로 고칩니다.

JetBrains WebStorm 사용자 전용입니다.

저는 없없이 없어요.ng글로벌하게 설치되었으므로 로하게게설설설 installed installed installed installed installed installed installed installed installed installed installed installed installed installed installed installed installed installed installed를 실행할 수 없습니다.ng test ...명령행에서 확인할 수 있습니다.그리고 기존 코드베이스의 Angular 버전과 혼동될 수 있기 때문에 설치할 수도 없습니다.JetBrains WebStorm IDE를 사용하고 있는데, 이 IDE에서 사양 파일을 마우스 오른쪽 버튼으로 클릭하고 테스트를 실행할 수 있습니다.

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

규격 파일을 매개 변수로 지정할 경우 작동합니다.

예를 들어 다음과 같습니다.

ng test foo.spec.ts

언급URL : https://stackoverflow.com/questions/41132933/running-a-single-test-file 입니다.

반응형