Интерфейс командной строки Angular 11, опция «ng generate»: —пропустить тесты

#angular-cli

#angular-cli

Вопрос:

При использовании Angular 11 CLI, когда я создаю новый компонент, я могу указать опцию --skip-tests , чтобы избежать генерации a .component.spec.ts на этом этапе.

 ng generate component --name asdf --module app --skip-tests --dry-run
 

Когда я создаю новый модуль, содержащий новый компонент ( --route опция) Я не могу указать эту --skip-tests опцию.

 ng generate module --name asdf --module app --route asdf --routing true --skip-tests --dry-run
 

Если я это сделаю, я получу сообщение об ошибке:

 Unknown option: '--skip-tests'
 

Есть ли другой способ пропустить генерацию теста в этом случае или он просто не поддерживается generate module ?

Ответ №1:

Согласно этой статье, вы можете либо добавить --skip-tests флаг при создании проекта в целом, либо при создании отдельных компонентов. С логической точки зрения имеет смысл, что вы не могли применить флаг к модулю, поскольку модули не генерируются с помощью тестовых файлов.

Чтобы внести изменения во весь будущий сгенерированный код, измените свой angular.json файл, добавив skipTests:true его в раздел schematics.

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

Комментарии:

1. Спасибо, статья, на которую вы ссылались, на самом деле косвенно содержит ответ, который заключался бы в том, чтобы вручную отредактировать «схемы» в angular.json "skipTests": true разделе добавление "@schematics/angular:component" . Я попробовал это, это работает, и это было бы лучшим вариантом для меня. Если вы хотите добавить это к своему ответу, я полагаю, что могу пометить его как правильный.

2. Вы также должны добавить один для @schematics/angular:guard" .

Ответ №2:

--skip-tests не поддерживается ng generate module командой.

поддерживаемые опции :

  • --flat
  • --lint-fix
  • --module
  • --project
  • --route
  • --routing
  • --routing-scope

Обновить:

альтернативой является последовательное использование двух команд:

 ng generate module --name am amp;amp; ng generate component --name ac --module am --skip-tests --dry-run 
 

amp;amp; означает выполнение command2 только в том случае, если выполнение command1 завершилось успешно.

обратите внимание, что amp;amp; не поддерживается в интегрированном терминале vscode, возможный обходной путь можно найти здесь

Результат должен быть примерно таким:

введите описание изображения здесь

Я использую angular CLI версии 10, но angular cli v11 должен давать те же результаты.