programing

Angular CLI 이미 존재하는 구성 요소에 대한 .spec 파일 생성

javajsp 2023. 8. 22. 21:56

Angular CLI 이미 존재하는 구성 요소에 대한 .spec 파일 생성

에 옵션이 있습니다..angular-cli.json의 자동 생성을 비활성화하려면*.spec파일(예: 구성 요소는 json 스키마를 참조하십시오.

이것은 정말 좋은 기능입니다. 왜냐하면 개인적으로 (내 생각에 이것은) 빠르게 성장하는 프로젝트에서 구성 요소를 테스트하는 것은 가치가 없을 수 있기 때문입니다.

그러나 때때로 해당 항목을 생성/재작성하는 옵션이 필요합니다.*.spec이미 존재하는 구성 요소/서비스/파이프/임의의 파일입니다.

명령줄 호출을 사용하여 가능합니까?

기능 요청을 생성했습니다. 어떻게 진행되는지 확인해 보겠습니다.

현재 Angular CLI는 이 기능을 제공하지 않으며 공식적인 방식으로 언제 어떻게 관리할 수 있을지 확실하지 않습니다.

그러나 여기에는 Angular CLI 사양 사전 설정을 기반으로 사양을 생성하는 라이브러리 "ngx-spec"이 있습니다.

vsCode를 사용하는 경우 ngx-spec 작성자는 이 확장명을 사용하는 것이 좋습니다. https://github.com/cyrilletuzi/vscode-angular-schematics

사양을 생성할 디렉토리를 선택하면 모든 Angular 사양이 생성됩니다.

사양 파일이 존재하지 않고 구성 요소 / 지시문 / 가드 / 파이프 / 서비스가 angular-cli 파일 생성 이름을 따르는 경우에만 파일을 생성합니다.

npm install -g angular-spec-generator

angular-spec-generator 'C:\Users\Alan\Desktop\test'

https://github.com/smnbbrv/ngx-spec 사용하여 기존 .ts 파일의 발판을 만들 수 있습니다.

Angular 프로젝트에 설치하려면:

npm i -D ngx-spec@^2.0.0

(-D는 --save-dev의 약자)

사용 예(서비스의 경우):

ng g ngx-spec:spec path/my.service

또는

ng g ngx-spec:spec path/my.service.ts

서비스의 경우 주입을 통해 생성되는 테스트를 설정하지 않습니다.테스트가 다음과 같이 보이도록 조정합니다.

import { TestBed, inject } from '@angular/core/testing';

import { DataService } from './data.service';
import { AuthService } from './auth.service';
import { HttpClient, HttpHandler } from '@angular/common/http';

describe('DataService', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      providers: [DataService, AuthService, HttpClient, HttpHandler
      ]
    });
  });

  it('should be created', inject([DataService, AuthService], (service: DataService) => {
    expect(service).toBeTruthy();
  }));
});

또한 와일드카드를 사용하여 테스트를 생성할 수도 있습니다.

ng g ngx-specs '**/*

그것은 저에게 효과가 없었습니다. GitHub 문제를 참조하십시오.

https://github.com/smnbbrv/ngx-spec/issues/10


참고 - 테스트 기반 개발을 구현하기 위한 전략으로 기존의 모든 데이터를 검색하고 제거하는 것이 가장 쉽다는 것을 알게 되었습니다.*.spec.ts초기 아티팩트 생성의 일부로 Angular 프로젝트에서 자동으로 생성된 파일(Windows 탐색기에서 검색), 그 다음 시작점으로 메인 Angular 데이터 공급자 서비스에 대한 단일 테스트를 생성했습니다.ngx-spec

이를 위한 두 가지 솔루션이 있습니다.

  • 1: 복사본 만들기@angular/cli기존 자또추코가드체코에드확(또는 확장)에의 코드를 합니다.ng new명령(https://github.com/angular/angular-cli/blob/master/packages/%40angular/cli/commands/new.ts) 및 글로벌 설치에 통합)@angular/cli이것은 아마도 비현실적이고 시간을 들일 가치가 없습니다.
  • 2: 다음으로 당김 요청을 합니다.@angular/cli팀이 아이디어를 통합하고 코드가 작동하고 아이디어가 충분히 좋은 것 같으면 추가할 수 있습니다.

언급URL : https://stackoverflow.com/questions/46276055/angular-cli-create-spec-files-for-already-existing-components