programing

Angular 9 + CLI(TypeScript) - .spec.ts 테스트 파일 생성을 중지하는 방법

lastmoon 2023. 8. 10. 19:10
반응형

Angular 9 + CLI(TypeScript) - .spec.ts 테스트 파일 생성을 중지하는 방법

나쁜 관행인 건 알지만, 참아주세요.

특히 Angular-CLI를 사용하고 있습니다.ng g내 모든 수업을 생성하는 것.하지만, 저는 어떤 것에도 관심이 없습니다.*.spec.ts테스트 파일나는 두 개의 깃발이 있다는 것을 압니다.--inline-template,--inline-style) 분리된 파일 대신 인라인 CSS와 HTML을 처리하고, 사양을 지정합니다.--spec플래그는 기본적으로 true로 설정되어 있습니다.

그래서 매번 달릴 때마다, 네, 저는 할 수 있습니다.ng g c foo --it --is --spec=false.

하지만 테스트 파일 생성을 글로벌하게 비활성화하려면 어떻게 해야 합니까?기본 설정이 있습니까?

경솔하게도, 저는 다음과 같은 일을 했습니다. (그것은 효과가 없었습니다).

ng set spec=false --global

또한 구성을 시도했습니다.src/tsconfig.json제외 배열 채우기:

"exclude": [
    "**/*.spec.ts"
]

Angular 9+(아래 버전 6+)의 경우

코드 조각을 루트에 복사합니다.angular.json(모든 프로젝트/문서에 대한 설정 구성).
또는 특정 프로젝트의 루트에 스니펫을 복사합니다.projects.your-project-name)에서.angular.json(특정 프로젝트에 대한 설정 구성).

"schematics": {
  "@schematics/angular:component": {
    "style": "scss",
    "skipTests": true
  },
  "@schematics/angular:class": {
    "skipTests": true
  },
  "@schematics/angular:directive": {
    "skipTests": true
  },
  "@schematics/angular:pipe": {
    "skipTests": true
  },
  "@schematics/angular:service": {
    "skipTests": true
  }
},

파일 유형별로 구성 가능한 모든 옵션 개략도 옵션:

"schematics": {
  "@schematics/angular:component": {
    "changeDetection": "Default",
    "entryComponent": false,
    "export": false,
    "flat": false,
    "inlineStyle": false,
    "inlineTemplate": false,
    "module": "",
    "prefix": "",
    "selector": "",
    "skipImport": false,
    "spec": true,
    "style": "css",
    "viewEncapsulation": "Emulated",
    "skipTests": "false"
  },
  "@schematics/angular:module": {
    "commonModule": true,
    "flat": false,
    "module": "",
    "routing": false,
    "routingScope": "Child"
  },
  "@schematics/angular:service": {
    "flat": true,
    "skipTests": true
  },
  "@schematics/angular:pipe": {
    "export": false,
    "flat": true,
    "module": "",
    "skipImport": false,
    "skipTests": true
  },
  "@schematics/angular:directive": {
    "export": false,
    "flat": true,
    "module": "",
    "prefix": "app",
    "selector": "",
    "skipImport": false,
    "skipTests": true
  },
  "@schematics/angular:class": {
    "skipTests": true
  }
},

Angular 6+의 경우

코드 조각을 루트에 복사합니다.angular.json(모든 프로젝트/문서에 대한 설정 구성).
또는 특정 프로젝트의 루트에 스니펫을 복사합니다.projects.your-project-name)에서.angular.json(특정 프로젝트에 대한 설정 구성).

"schematics": {
  "@schematics/angular:component": {
    "styleext": "scss",
    "spec": false
  },
  "@schematics/angular:class": {
    "spec": false
  },
  "@schematics/angular:directive": {
    "spec": false
  },
  "@schematics/angular:guard": {
    "spec": false
  },
  "@schematics/angular:module": {
    "spec": false
  },
  "@schematics/angular:pipe": {
    "spec": false
  },
  "@schematics/angular:service": {
    "spec": false
  }
},

파일 유형별로 구성 가능한 모든 옵션(도형 옵션):

"schematics": {
  "@schematics/angular:component": {
    "changeDetection": "Default",
    "export": false,
    "flat": false,
    "inlineStyle": false,
    "inlineTemplate": false,
    "module": "",
    "prefix": "",
    "selector": "",
    "skipImport": false,
    "spec": true,
    "styleext": "css",
    "viewEncapsulation": "Emulated"
  },
  "@schematics/angular:module": {
    "commonModule": true,
    "flat": false,
    "module": "",
    "routing": false,
    "routingScope": "Child",
    "spec": true
  },
  "@schematics/angular:service": {
    "flat": true,
    "spec": true
  },
  "@schematics/angular:pipe": {
    "export": false,
    "flat": true,
    "module": "",
    "skipImport": false,
    "spec": true
  },
  "@schematics/angular:directive": {
    "export": false,
    "flat": true,
    "module": "",
    "prefix": "app",
    "selector": "",
    "skipImport": false,
    "spec": true
  },
  "@schematics/angular:class": {
    "spec": true
  }
},

Angular CLI를 사용한 Angular CLI 구성

오류:

ng set defaults.spec.component false명령을 실행하면 다음 오류가 발생합니다.get/set have been deprecated in favor of the config command.

ng set로 바뀌었습니다.ng config.

Angular CLI 사용(config 명령 사용):

사양, 인라인 템플릿, 인라인 스타일 등을 생성하기 위한 설정angular.json이제 내부에서 지속됩니다.schematics.@schematics/angular.<file-type>.<setting>.

달려.ng config schematics.@schematics/angular.component.spec false구성 요소에 대한 사양을 구성합니다.이 명령은 다음과 같은 구성 요소 내의 스키마 속성 내부에 설정을 추가합니다.angular.json파일.


Angular Github의 Angular CLI 작업 공간 파일(angular.json)

schema.json 내부의 스키마 옵션

Angular CLI v6에서 X를 수행하는 방법

만약 당신이 v6를 사용하고 있고 당신의 angular.json을 편집해야 한다면.

프로젝트의 스키마를 편집할 수 있습니다.

"schematics": {
    "@schematics/angular:component": {
      "styleext": "scss",
      "spec": false
    },
    "@schematics/angular:class": {
      "spec": false
    },
    "@schematics/angular:directive": {
      "spec": false
    },
    "@schematics/angular:guard": {
      "spec": false
    },
    "@schematics/angular:module": {
      "spec": false
    },
    "@schematics/angular:pipe": {
      "spec": false
    },
    "@schematics/angular:service": {
      "spec": false
    }
  },

다음 명령을 실행하여 특정 유형의 파일에 대한 규격 파일 생성을 비활성화할 수 있습니다.

ng set defaults.spec.FILETYPE false

예:

ng set defaults.spec.component false // Won't generate spec files for .component files

또는 angular-cli.json 파일에서 모든 사양 파일 생성을 사용하지 않도록 설정할 수 있습니다.

{
  ...
  "defaults": {
    "spec": {
      "class": false,
      "component": false,
      "directive": false,
      "module": false,
      "pipe": false,
      "service": false
    }
  }
}

Angular 9+의 경우:

Angular.jsonAngular/CLI의 GitHub 문제에 따라 구성이 약간 변경되어 이전 구성 스키마가 변경되었습니다.

@sacgrover의 코멘트와 나 자신의 코멘트를 각색했습니다.

올드웨이

"@schematics/angular:component": {
    // true => DO generate spec files, false => DON'T generate them
    "spec": true,
    "styleext": "scss"
}

새로운 방법:

"@schematics/angular:component": {
    // true => DON'T generate spec files, false => DO generate them
    "skipTests": true,
    "style": "scss"
}

추가 참조 => CLI 생성 명령어용 Angular Docs

Sabbir Rahman의 답변을 업데이트하기 위해:

CLI 버전 1.0.2에서는 각 개별 유형에 대해 규격 파일을 false로 설정해야 합니다.예는 다음과 같습니다.

"defaults": {
    "styleExt": "scss",
    "component": {
      "spec": false
    },
    "service": {
      "spec": false
    },
    "directive": {
      "spec": false
    },
    "class": {
      "spec": false // Set to false by default
    },
    "module": {
      "spec": false // Set to false by default
    },
    "pipe": {
      "spec": false
    }
  }

추가할 수 있습니다.--skipTests=true|falsetrue이면 spec.ts가 생성되지 않습니다.

예:ng g component componentName --skipTests=true

이 줄은 spec.ts 파일을 생성하지 않습니다.

편집:

참고: angular 7부터는 angular 공식 웹사이트에 이 명령이 언급되어 있지만 이 명령은 작동하지 않습니다.여기: https://angular.io/cli/generate#component

추가할 수 있습니다.--spec=false

ng g c home --spec=false

로그는

CREATE src/app/home/home.component.scss (0 bytes)
CREATE src/app/home/home.component.html (23 bytes)
CREATE src/app/home/home.component.ts (262 bytes)
UPDATE src/app/app.module.ts (467 bytes)

각도 8+의 경우:

옵션 "spec"은 더 이상 사용되지 않습니다.대신 "테스트 건너뛰기"를 사용하여 새 구성 요소를 만들려면 다음을 사용합니다.

ng g c my-new-component --skipTests=true
"@schematics/angular:component": {"style": "scss","skipTests": true}

그냥추를 추가하세요."skipTests":true당신의 angular.json 파일로 그러면 당신은 문제를 해결할 것입니다.

해볼 수 있습니다--skip-tests아래와 같이 앱을 만들 때.

ng new yourProjectName --skip-tests

이렇게 하면 괜찮을 겁니다.

ng generate component newFile --skip-tests

Angular.json에 다음 코드 추가

"schematics": {
    "@schematics/angular": {
      "component": {
        "spec": false
      }
    }
  }

명령만 실행: " " 은 다음과 같습니다.ng config schematics.@schematics/angular.component.spec false

추가할 수 있습니다.--skipTests=true규격 파일 생성을 중지하려면 다음과 같이 하십시오.

예:

ng g s core/services/auth/auth-guard --skipTests=true

로그는

CREATE src/app/core/services/auth/auth-guard.service.ts (138 bytes)

언급URL : https://stackoverflow.com/questions/42049756/angular-9-cli-typescript-how-to-stop-generating-spec-ts-test-files

반응형